描述
部分圖片和經驗來源于網絡,若有侵權麻煩聯系我刪除,主要是做筆記的時候忘記寫來源了,做完筆記很久才寫博客。
?專欄目錄:記錄自己的嵌入式學習之路-CSDN博客
目錄
1?? ?安裝環境及運行C/C++
1.1?? ?安裝及配置步驟
1.2?? ?運行的關鍵步驟
2?? ?導入第三方C/C++庫
2.1?? ?創建并修改C/C++配置文件
2.2?? ?修改tasks.json
3?? ?常用快捷操作
3.1?? ?打開內置終端
3.2?? ?打開命令面板
3.3?? ?多光標編輯
3.4?? ?快捷切換編輯的文件
4?? ?排除項目中的文件
5?? ?VScode技巧
5.1?? ?利用bear make建立索引
5.2?? ?鼠標滾輪很卡
5.3?? ?clangd報一些不是問題的問題
5.4?? ?格式化文檔時的縮進問題
5.5?? ?調整文檔格式化的其他格式
5.6?? ?.gitignore忽略失敗的解決方法
1?? ?安裝環境及運行C/C++
1.1?? ?安裝及配置步驟
????????請參考這位大佬的文章:
VS Code 配置 C/C++ 編程運行環境(保姆級教程)_vscode配置c++環境-CSDN博客https://blog.csdn.net/qq_42417071/article/details/137438374
1.2?? ?運行的關鍵步驟
(1)?? ?配置launch.json
????????點擊右上角的齒輪新建一個launch.json。
????????這里需要關注的主要是program和miDebuggerPath兩項,其中miDebuggerPath就是要輸入gdb的路徑。
(2)?? ?配置tasks.json
????????上一步點擊齒輪后也會新建一個tasks.json。
????????這里需要關注的是command,若是編譯C程序,就是gcc的完整路徑,若是編譯C++程序,就是g++的完整路徑。
(3)?? ?編輯C/C++配置
????????Ctrl + Shift + P 輸入命令,C/C++:
????????編輯后要是有多個配置,可以在“C/C++:選擇配置”那里進行選擇:
也可以在右下角進行選擇:
2?? ?導入第三方C/C++庫
2.1?? ?創建并修改C/C++配置文件
????????Ctrl + Shift + P 輸入命令,C/C++:
????????選擇JSON那個選項,即打開c_cpp_properties.json,在includePath中添加所引用的頭文件。并同時確認compilerPath是對的。
2.2?? ?修改tasks.json
????????在args項目下,添加包含的頭文件路徑、動態鏈接庫路徑以及動態鏈接庫名稱。(應該添加在-o前)
(1)?? ?頭文件路徑
????????“-I”, “<頭文件路徑(不包括頭文件名稱)>”
(2)?? ?動態庫文件路徑
????????“-L”, “<動態庫文件路徑(不包括庫文件名稱)>”
(3)?? ?動態庫名稱
????????“-l”, “<動態庫名稱(不包括后綴)>”
3?? ?常用快捷操作
3.1?? ?打開內置終端
????????ctrl + `
3.2?? ?打開命令面板
????????ctrl + shift + p
3.3?? ?多光標編輯
????????(1)?? ?alt + 鼠標左鍵,自行選中光標需要出現的地方(可任意位置);
????????(2)?? ?按住Ctrl + Alt,再按鍵盤上的上或下鍵(只能同一列);
????????(3)?? ?按住shift + alt,再使用鼠標拖動,也可以出現豎直的列光標,同時可以選中多列;
????????(4)?? ?選中一些文字,按shift + ctrl + L,可以選中所有與選中內容相同的內容,并都在其最后有光標;
????????(5)?? ?選中一些文字,按ctrl + D,可以增加選中下一個與選中內容相同的內容,并在其最后有光標,可重復使用達到一直選擇后面的相同內容的效果;
????????(6)?? ?選中一段文字,按shift + alt + i,在每行末尾都會出現光標;
3.4?? ?快捷切換編輯的文件
????????在已經打開好幾個文件的情況下,可以使用以下方法快速切換:
????????(1)?? ?Alt + <序號>:切換至打開的第n個文件;
????????(2)?? ?Ctrl + Tab:在已打開的文件中切換;
4?? ?排除項目中的文件
如果項目中存在很多項目不需要的文件,例如對于驅動開發中的內核源碼,<源碼>/arch下除了arm文件夾外的別的文件是不需要的。要排除這些文件,可以在項目根目錄上新建.vscode文件夾,并在.vscode下新建settings.json文件。
setting.json文件內容:
{"search.exclude": {"**/node_modules": true,"**/bower_components": true,"**/*.o":true,"**/*.su":true,"**/*.cmd":true,"Documentation":true,/* 屏蔽不用的架構相關的文件 */"arch/alpha":true,"arch/arc":true,"arch/arm64":true,"arch/avr32":true,"arch/[b-z]*":true,"arch/arm/plat*":true,"arch/arm/mach-[a-y]*":true,"arch/arm/mach-zx":true,/* 屏蔽不用的配置文件 */"arch/arm/configs/[a-w]*":true,"arch/arm/configs/[y-z]*":true,/* 屏蔽不用的 DTB文件 */"arch/arm/boot/dts/[a-y]*":true,"arch/arm/boot/dts/.*":true,},"files.exclude": {"**/.git": true,"**/.svn": true,"**/.hg": true,"**/CVS": true,"**/.DS_Store": true,"**/*.o":true,"**/*.su":true,"**/*.cmd":true,"Documentation":true,/* 屏蔽不用的架構相關的文件 */"arch/alpha":true,"arch/arc":true,"arch/arm64":true,"arch/avr32":true,"arch/[b-z]*":true,"arch/arm/plat*":true,"arch/arm/mach-[a-y]*":true,"arch/arm/mach-zx":true,/* 屏蔽不用的配置文件 */"arch/arm/configs/[a-w]*":true,"arch/arm/configs/[y-z]*":true,/* 屏蔽不用的 DTB文件 */"arch/arm/boot/dts/[a-r][g-z]*":true,"arch/arm/boot/dts/[b-r]*":true,"arch/arm/boot/dts/s[0-9]*":true,"arch/arm/boot/dts/s[a-x]*":true,"arch/arm/boot/dts/[t-y]*":true,"arch/arm/boot/dts/zynq-[a-z]*":true,"arch/arm/boot/dts/.*":true,".*":true,}
}
5?? ?VScode技巧
5.1?? ?利用bear make建立索引
方法一:利用Intellisense(不是很好使):
????????(1)?? ?安裝一個bear;
????????(2)?? ?以后使用make命令都改為bear make;
????????(3)?? ?搜索命令選擇IntelliSence配置
????????
????????(4)?? ?選擇使用bear生成的compile_commands.json
????????
????????(5)?? ?如果沒有該選項可以直接到c_cpp_properties.json中增加compileCommands項指向該json:?
????????
方法二:利用clangd
????????(1)?? ?同方法一
????????(2)?? ?同方法一
????????(3)?? ?VScode安裝clangd插件
????????(4)?? ?安裝clangd,可以從vscode彈出的clangd插件要求安裝clangd server的通知中下載,其會解壓到home目錄下直接使用,不安裝到系統環境。除此以外,還可以自行使用apt安裝,其包名一般叫做clangd-X,這個X可以是12、10、9、8等等,越新越好。或者自己到clangd的github下載一個編譯好的release版本解壓,然后到vscode的clangd設置中指定clangd文件所在路徑就可以用了(該方法只支持x86_x64架構,因為官方沒有編譯arm架構的)。
????????(5)?? ?禁用vscode的C/C++插件,禁用Maketools,禁用Intellisense。
????????(6)?? ?每次使用bear make后,將c_cpp_properties.json中的”cc”即編譯器改為項目使用的編譯器,如:arm-xilinx-linux-gnueabi-gcc,然后最好使用shift+ctrl+p輸入clangd:restart language server重啟系統的clangd服務。
5.2?? ?鼠標滾輪很卡
????????設置界面將mouse Wheel Scroll Sensitivity調大,1就會卡,2剛好。
5.3?? ?clangd報一些不是問題的問題
如下:
????????Unknown argument: '-mno-fdpic'
????????Unknown argument: '-fno-ipa-sra'
????????Unknown argument: '-fno-allow-store-data-races'
????????Unknown argument: '-fconserve-stack'
????????
解決方法:
????????在打開的目錄的最上層新建一個.clangd文件,文中寫入以下內容:
CompileFlags:Add: -Wno-unknown-warning-optionRemove: [-mno*, -fno*, -fco*]
????????其中*為通配符,移除內容可根據實際需要進行修改。修改該文件后需要restart一下clangd server(用VScode里面的命令)。
5.4?? ?格式化文檔時的縮進問題
????????安裝了clangd后,格式化文檔命令(ctrl+shift+i)使用的一般就是clangd,而clangd默認的縮進是2個空格,因此需要進行修改。
????????在項目根目錄新建.clang-format文件,并添加IndentWidth: 4即可。
5.5?? ?調整文檔格式化的其他格式
????????請參考這位大佬的文章:
VS Code C++ 代碼格式化方法(clang-format)_vs code clang-format-CSDN博客https://blog.csdn.net/core571/article/details/82867932
5.6?? ?.gitignore忽略失敗的解決方法
????????有時候還沒創建.gitignore文件就提交過git,后續哪怕添加了文件進去,添加前已經提交過的文件依然會一直被跟蹤而不會被忽略,此時需要使用git rm --cached <file>命令來清除這些已經跟蹤的文件,清楚完還需要git commit提交一次。
????????注意!清除前最好沒有任何待提交或待放進緩存區的記錄。
? ? ? ? 詳細可以參考這位大佬的文章:
vscode中 .gitignore 規則不生效 - 簡書https://www.jianshu.com/p/773e616d6c18