如何用vs code寫c語言專案 多個檔案,原始檔和標頭檔案 ?

時間 2021-05-11 22:57:21

1樓:Klein Hu

首先用VS Code開啟整個資料夾,然後有幾種方式可以解決你說的問題:

單獨編輯每個檔案。編譯的時候直接編譯多個檔案。

做乙個Makefile,用make命令來編譯多個檔案。

類似2,但使用automake生成Makefile,然後再用make來編譯

類似3,但使用cmake

類似3,但使用bazel

任何乙個都能解決問題,純看你的專案需要哪個了。以上方法不一定跨平台,在Linux裡或者Windows上的類Linux環境裡應該都能用,Windows上不確定。

2樓:ijrys

vs code並不支援工程

工程的組織得靠自己寫檔案和編譯程式去配合

不過我之前幹這個活是寫了個PowerShell指令碼,自動找當前目錄下的.cpp檔案,拼g++引數,然後手動調指令碼

附:那段powershell指令碼:

[string]

$comd

="-o"

,"Tree.exe"

Get-ChildItem

*.cpp

|ForEach

-Object

clang

++$comdif(

$LASTEXITCODE

-eq0

)大致解釋一下

[string]

$comd

="-o"

,"Tree.exe"

comd是乙個string陣列,初始倆元素,"-o", "Tree.exe"

Get-ChildItem

*.cpp

|ForEach

-Object

獲取目錄下的*.cpp迴圈加到comd裡

clang

++$comd

呼叫clang++,引數就是comdif($LASTEXITCODE

-eq0

)編譯成功了的話執行編譯完成的程式

3樓:

C/C++ 可以一條命令編譯多個原始檔

gcc-

oprogram

.exea.

cb.c

c.cd

.c你可以在 tasks.json 裡面把這樣的命令敲進去

"command": "gcc",

"args൪-o",

"program.exe",

"a.c",

"b.c",

"c.c",

"d.c"

]然而如果你的原始檔數比較多,或者原始檔分布在多個目錄下,生成的可執行程式也要放入另乙個目錄。這種方式就會變得非常的笨拙。而且這種方式是一次性全部編譯鏈結,無法將編譯鏈結拆成兩個步驟分開執行(這點小專案倒也無所謂了)

專案稍微稍微複雜到一定程度,你就會對自動構建工具抱有強烈的渴求,比如 make(makefile),比如 cmake

你可以在 vscode 裡面使用這些自動構建工具,cmake 我沒有用過,我只用過 make

在 vscode 裡面使用 make 很簡單,需要修改的只有 tasks.json 中執行的命令。我們把 makefile 配置檔案放置於專案的根目錄,然後在 tasks.

json 中寫下:

"command": "make",

"args൪-C",

"$",

"all"

]其中 all 是 makefile 裡的標籤(label,需要去學習了解 makefile 裡偽目標這個東西)

在你按下 F5 後,vscode 會執行這條命令構建專案,然後根據你在 launch.json 中寫的 "program" 項所指定的可執行檔案,啟動程式開始除錯。

在 vscode 中使用 make 需要你自己手動管理 makefile,我目前並不知道有什麼外掛程式可以幫我們自動修改 makefile。由於沒有用過 cmake,所以我也不知道在 vscode 中那幾個 cmake 的外掛程式能不能自動幫我們管理配置檔案

如果這些配置檔案沒法被 vscode 自動管理的話,我們就會需要手寫配置檔案。這裡應該才是對題主而言最難的部分吧。你需要去學習了解 C/C++ 的編譯流程和編譯命令,學習如何編寫 makefile/CMakeLists.

txt如果題主還是初學者的話,我並不建議這麼早就搞這些東西。先在 IDE 裡面學習使用 C/C++,到了一定程度之後再來看這些東西怎麼弄會好很多

4樓:程式碼之詩

VS Code 本身只是乙個編輯器,它有外掛程式機制可以支援各種編譯工具(也就是題主說的 project)。

我覺得,關鍵在於回去複習好《編譯原理》這門課……算了劃掉,不那麼皮了。課本往往太理論,一頭就紮進編譯器內部了,反而對如何使用編譯器著墨太少。

可以讀一下我另乙個回答:

如何實現多檔案編譯?

了解了基本原理和操作之後,再回頭來選擇乙個自己心儀的編譯工具。初學階段,我個人推薦先使用 Visual Studio Community Edition。有些經驗之後,試試 CMake。

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

羊羔的驕傲 多平台幾乎相同的使用體驗,除了部分快捷鍵不一樣。非常輕量,啟動速度很快。強大的擴充套件功能,C 與CMake Tools都是擴充套件。內建終端,來回切換很方便。IntelliSense不如VS的好用,經常找不到符號,需要重新解析檔案。相比於VS2019原生支援CMake,體驗差很多。Ma...

如何用 c 語言寫乙個扔色子的程式?

GsyPs 既然問題描述要求各面的值。1 隨機朝向天的點數 2 水平方向選擇一點為參考,隨機0到360度隨機一下角度,即可確定剩下四面的朝向。3 printf 列印出來 偏扁豆 想了乙個真隨機 建乙個rpc伺服器,server端弄個worker池,每個worker負責聯絡乙個知乎的閒人負責現實中擲色...

如何用C語言程式設計計算 1! 2! 3! 10!?

朕乃明帝 include int main int temp 1,sum 0,i for i 1 i 10 i temp temp i sum temp printf d sum return 0 ageer 一次for迴圈即可,乙個變數存當前階乘結果,乙個變數存歷史階乘累加值。int JieChe...