如何優雅的用 VScode 編寫 C 大型專案?

時間 2021-05-11 19:14:34

1樓:羊羔的驕傲

多平台幾乎相同的使用體驗,除了部分快捷鍵不一樣。

非常輕量,啟動速度很快。

強大的擴充套件功能,C++與CMake Tools都是擴充套件。

內建終端,來回切換很方便。

IntelliSense不如VS的好用,經常找不到符號,需要重新解析檔案。相比於VS2019原生支援CMake,體驗差很多。

Mac下不支援"Jump to Cursor",而Xcode支援這個功能。對於除錯還是有些不方便。

CMake主要使用settings.json配置檔案,以往需要手動輸入的命令、傳遞的引數都可以寫在這個檔案裡。

在cmake.configureSettings中設定引數,相當於傳入了-D+引數給CMake。也可以使用cmake.configureArgs,但是官方不推薦。

有3個字段可以設定:

cmake.configureEnvironment: 僅用於CMake配置階段

cmake.buildEnvironment: 僅用於編譯階段

cmake.environment: 同時用於CMake配置與編譯階段

可以通過CMake Variants實現,在buildType這個variant中分別在Debug/Release的env欄位中設定。

還是用CMake Variants,建立乙個新的variant設定不同的配置。這個variant會與其它variant排列組合生成很多kit。

2樓:Belleve

Windows 夠大型了吧,大概有 1/3 的 dev 用 vscode

他們的做法是——工程組給 vscode 專門寫了乙個外掛程式,要改哪一塊直接 cd 進去然後 code ./,所有配置自動識別,完事

3樓:

大型專案,一般都是細分專案,編碼的時候都是開啟部分專案原始碼就夠了。

像是標頭檔案管理,都是用的cmake類似的工具,根本不會麻煩。

建議題主去參考chrome原始碼,這個才叫大型專案,多幾個原始碼資料夾那不算什麼。

4樓:tskT

還是用vs2019吧,不要給自己找麻煩,我曾經新奇的用過好多文字編輯器,最後還是得上ide。簡單編輯或者自己的小專案用一用vscode還是不錯的,我自己有時候也用。

5樓:諸葛不亮

標頭檔案管理說白了還是專案工具的責任,ide只是管理專案,何況vsc都不是ide。

既然都寫cpp這種必須編譯的,那就上高階一點的構建工具咯。起碼來個cmake,然後再cmakelists裡把依賴庫和標頭檔案路徑寫好,vsc裝個cmake外掛程式,我不信還有問題。

6樓:David

雖然我是個菜鳥,但是可以推薦使用cmake,只用編寫好CMakeLists.txt檔案就可以自動生成build資料夾,並且自動查詢標頭檔案,cmake的配置方法網上找一下就行,也可以很方便在vscode下除錯。

ps:如果還是覺得麻煩,可以上Jetbrains的Clion或者直接上linux吧,Clion自動生成cmake檔案,非常方便

7樓:

更新作者說Windows版tup沒有跟蹤檔案系統的功能,也就是說,需要全域性掃瞄。

Linux版tup有跟蹤檔案系統的功能,tup monitor.

不夠理想,就不深入研究了。

試過用vscodium(vscode的分支,不會自動上傳資訊)代替vs2019community,碰到的主要問題是Build過程是否能像VS一樣夠自動化

CMake/premake之類,以CMake為例,支援萬用字元,增刪檔案後不用修改CMakeLists.txt,但編譯需要兩部,先CMake再make / ninja /...

makefile,萬用字元可以達到自動編譯的目的,但makefile太古老,語法不漂亮,據說有些依賴支援不好,反正不喜歡語法就沒深入學習了

tup,能從檔案系統級別跟蹤變化並決定是否需要編譯,一般依賴關係是按從根到葉子順序檢查的,tup是相反的,速度很快沒什麼缺點,作者說這才是自然的順序。對自動生成檔案的處理不太優雅:1.

自動生成的檔案和手動生成的檔案的依賴關係要分別對待,也就是自動生成的依賴需要顯式地加入依賴關係,而手動生成的可加可不加,有點混亂 2. 自動生成的新檔案不會引發編譯,修改了才會引發編譯

都不夠完美,現在用VS2019,VS2019的智慧型提示不太好,其他還行,telemetry只能暫時忍忍(我覺得VS會上傳檔名,因為office都會上傳檔名)。MARK一下,看看有沒有好的辦法。

8樓:

管理各個資料夾很麻煩是吧。有個技巧能解決:寫乙個.

gitignore檔案,在裡面填入你想遮蔽的資料夾就可以了。遮蔽是什麼效果呢,瀏覽檔案的時候顯示灰色,但是能手動開啟。在資料夾中搜尋的時候回被忽略。

如果想暫時解除遮蔽,在前面加#即可注釋掉。

沒有git伺服器怎麼辦,很簡單,你只需要有git客戶端就夠了,用git init命令初始化一下。該目錄就變成了git控制的目錄,vscode能自動識別到,gitignore檔案就能起作用了。只要不進行push/pull,分支什麼的其他的所有git操作都支援!

git init建立本地倉庫

.gitignore檔案效果

頭檔案目錄需要手動設定。按F1,輸入edit,選C/C++:Edit Configuration,編輯下面這個json檔案就可以了,並不麻煩。

我感覺,比起在VC++裡面找對話方塊設定標頭檔案路徑方便多了。然後這個json檔案,是位於.vscode資料夾,c_cpp_properties.

json。如果新建別的工程也需要這些標頭檔案,可以直接拷過去用。

編輯json檔案

把C:\cube\test_f407\Inc新增到頭檔案搜尋目錄

9樓:「已登出」

如果你是在Windows平台的話,推薦你使用VS2019的社群版,非常的好用。

如果你在Linux下的話,可以使用VSCode.

10樓:NaCl

目前我們做的產品就是用vscode,其實體驗並不是很優,主要是因為多產品聯合開發,標頭檔案配置很麻煩。

另外用Windows的時候,各種標頭檔案各種配置,確實很麻煩。

所以最好的體驗還是在Linux,可以省去很多標頭檔案識別的問題。至於其他的功能,多用外掛程式,實在不行,自己動手豐衣足食

Mac 上的 VSCode 編寫 Markdown 總是出現隱藏字元?

許小克 在mac版的vscode中這個隱藏字元預設是看不到的,不會顯示出來,但實際上是占有位置的,跟程式設計中的空字串有些類似。在win版vscode中會顯示成 在linux版vscode中會顯示成 在github中直接預覽會顯示成 如果開啟vscode的這個選項 控制編輯器是否應呈現控制字元 ed...

如何用 C 從零編寫 GUI?

Dust Loong 先簡單答一下,有時間詳細補充.對於題主的要求,大概是不借助除了標準庫 作業系統提供的函式外,全部自己完成的GUI庫。自己 還沒 完成的LongUI應該滿足這個要求,目前沒有第三方庫,甚至xml css解析都是自己完成的.LongUI的主題是輕量級 目前helloworld.ex...

C 如何入門程式介面的編寫

劉Hongye 入口的問題估計就是程式怎麼執行,視窗如何畫出的問題。也被困惑了很長時間。上面回答中提到的書基本解決了這個問題。但窮究細節,即使當時明白了,過段時間不用就生疏了。所以還是知道了大概方向就可,如用到臨時查文件就行。關於介面庫,en.wikipedia.org wiki widget to...