linux下VscodeC 環境配置

2022-09-20 21:15:17 字數 4067 閱讀 5419

首先要感謝的是這位大神: 看了他的文章之後,我恍然大悟

一.回到主題,在了解兩個json檔案之前,我們先看一下g++是如何工作的:

0.通過》g++ --version 檢視是否安裝了g++,如果沒有安裝,請自行安裝

1.隨便找乙個資料夾,我們先寫乙個main.cpp

1 #include2

3int main(void

)

2.在當前資料夾下開啟終端,輸入》 g++ -g -c main.cpp 後,當前檔案空間下會出現 main.o

3.在終端中繼續輸入 g++ -o main.out main.o 後,檔案空間下將會出現 main.out(可執行檔案)

4.在終端中輸入 ./main.out 即可執行

關於g++的基本用法,可以參考一下(這位大神的文章:其實也很簡單就是乙個編譯與鏈結的過程, -c只編譯生成目標檔案並沒有形成可執行檔案, -o 編譯加鏈結直接生成了可執行檔案 .out,所以上面的命令也可以簡化為: g++ -o main.out main.cpp

二.1.進入vscode,開啟剛才main.cpp所在的資料夾空間(可以刪除那些 .o 或 .out 檔案)

2.我們按f5進行除錯,出現除錯環境選擇

3.選擇c++(gdb/lldb)環境後,出現了許多除錯任務的模板,我們選擇最後乙個 '預設配置' 選項,然後開始配置launch.json

1

/a.out", //解釋一下, $是當前檔案空間的相對路徑 a.out是目標檔案

12//

a.out我們完全可以修改,我們就修改成 $.out

1314 "program": "$/$.out",

15//

至於 workspacefolder filebasenamenoextension見名思意

16//

另外關於.json中的各種替換變數的意思詳見下面這位大神的文章:

17//

18 "args": ,

19 "stopatentry": false

,20 "cwd": "$",

21 "environment": ,

22 "externalconsole": false

,23 "mimode": "gdb",

24 "setupcommands": [

2530

],31

32 "prelaunchtask": "hello" //

預設不會生成,但是非常重要,因為launch.json檔案負責啟動任務,簡單說就是執行檔案,這個要與 task.json 中的 label 名稱一致

33//

而task.json檔案就是負責配置相關任務,簡單說就是負責編譯與鏈結並生成可執行檔案.所以launch.json檔案前,必須要執行task.json檔案34}

35]36 }

4.再次f5調試試一下,當然是報錯找不到任務 hello 了,因為你還沒有寫task.json檔案啊

5.按下 ctr+shift+p 進入搜尋框,找到任務配置

6.點選任務配置後,就出現了任務配置的模板選項

7.選擇'使用模板'建立

8.然後在選擇others,就出現了task.json

1

",16 "-o",

17 "$.out"18]

19}20]

21 }

9.再f5除錯一下,就可以了,還可以新增斷點除錯(這不,執行成功了)

三.你以為結束了,no,你還是太天真了

雖然這樣可以實現單個檔案的編譯鏈結與執行,但是對於多檔案來說卻不行:

0.說明一下,這裡的多檔案是指:包含多個.cpp檔案(多個.h與乙個.cpp不算作多檔案,因為可以通過鏈結到一起)

1.我們直接舉個例子吧,新建a.h

1

#ifndef a_h

2#define a_h34

class a;

89 #endif

2.新建a.cpp

1 #include2 #include"a.h"34

void

a::say()

3.修改main.cpp

1 #include2 #include"a.h"34

int main(void

)

4.f5試一試,報錯:沒定義介面 a::say(). 為什麼會這樣,仔細看a.h,因為我們定義了乙個方法,但是沒有實現他,這又不是抽象類,所以必須要實現方法,你在main.cpp中呼叫該方法,但是該方法在a.h中沒有實現,main.cpp鏈結a.h後,編譯器仍然不認識他,所以就會報錯

四.0.通過 make --version 檢視有沒有安裝make,沒有安裝請自行安裝

1.怎麼解決呢,這個時候就用到make了,make是通過巢狀使用g++ 實現多檔案的編譯,make是怎麼執行的呢? 首先,make指令,會查詢你指定的檔案空間下有沒有makefile檔案,如何makefile存在就按照makefile中的內容執行,算了,說不明白,還是看下面的例子吧.

2.在當前檔案空間下新建檔案, 檔名為makefile (如圖)

3.修改task.json

1

",18

"-o",

19"$.out"20]

*/21 "args": [ //

應該是可寫可不寫,關於檔案路徑這一塊有很多的坑,希望大家注意

22 "-c",

23 "$"24]

25}26]

27 }

4.修改launch.json , 就該了一處 "program": "$/hello1", //因為要與makefile定義的檔名相匹配

5.makefile 內容如下: 我寫了兩個版本,其實本質上都是一樣的,大家可以體會一下,另外希望大家可以自行學習make命令的語法以及使用,在這裡我暫不贅述(其實自己不是很懂,哈哈)

1

hello1: main.o a.o

2 g++ -g -o hello1 main.cpp a.cpp #一定要縮排,而且必須是tab鍵縮排,不信,你試試

3clean:

4 rm main.o a.o

1

hello1: main.o a.o

2 g++ -o hello1 main.o a.o #一定要縮排,而且必須是tab鍵縮排,不信,你試

3main.o: main.cpp a.h

4 g++ -g -c main.cpp

5a.o: a.h a.cpp

6 g++ -g -c a.cpp

7clean:

8rm main.o a.o

9

6.f5 , perfect!

五.結束

以此篇紀念我linux之旅的開始,加油!

Mac下配置vscode C 開發環境

背景 之前看網上的配置,可以正常執行,但是除錯總是不行 安裝外掛程式c c c c clang command adapter,codelldb 用來debug,解決catalina不支援lldb除錯問題 以及code runner 用來編譯 言簡意賅,一共要3個檔案 c cpp propertie...

VScode C 環境配置

自己平台是mac,之前一直用clion 版本 2019.1 寫c 對於clion,有兩個缺點一直都很忍受,奈何無奈mac平台的vs一直不支援c 一直默默忍受著。一直老是卡住,經常性寫乙個cout就一直卡,難以理解這麼基本的語句為何會頻繁卡頓。執行速度超級慢,定義乙個物件,使用物件函式的時候,函式提示...

配置VScode c語言環境

成成最近用到c語言了,之前比較喜歡用在vscode上面用python除錯,今天我參考了一些文章,也嘗試了下在vscode上配置c語言的除錯,其中包含一些相關的基礎知識。安裝在d mingw 下就好 自己新建乙個資料夾 然後開啟後這個樣子 然後安裝好編譯器,下面設定環境變數,讓系統能夠自動找到gcc命...