VScode上配置 c語言環(huán)境的圖文教程
成成最近用到C語言了,之前比較喜歡用在vscode上面用python調(diào)試,今天我參考了一些文章,也嘗試了下在vscode上配置c語言的調(diào)試,其中包含一些相關(guān)的基礎(chǔ)知識。
1、在vscode里面下載c/c++官方插件:
2、安裝c/c++編譯器:
在windows上借助MinGW工具安裝,下載地址:[https://sourceforge.net/projects/mingw/ ]

安裝在d:\MinGW 下就好(自己新建一個(gè)文件夾),然后打開后這個(gè)樣子:

在里面找到mingw32-gcc.bin, mingw32-gcc-g++.bin, 以及mingw32-gdb.bin 第一個(gè)是c語言文件的編譯器,第二個(gè)是c++的,第三個(gè)是用來調(diào)試編譯后文件的。
然后點(diǎn)Installation->Apply all changes.
然后安裝好編譯器,下面設(shè)置環(huán)境變量,讓系統(tǒng)能夠自動(dòng)找到gcc命令,我的電腦右擊->屬性->高級系統(tǒng)設(shè)置->環(huán)境變量,在系統(tǒng)變量里面找到path,這個(gè)path和linux里面那個(gè)path是一樣的,命令行界面下系統(tǒng)就根據(jù)這個(gè)path變量里面存的路徑,尋找命令。我們把MinGW的二進(jìn)制可執(zhí)行文件的文件夾添加進(jìn)去。

這個(gè)時(shí)候我們打開命令行輸入gcc,應(yīng)該可以看到命令已經(jīng)被識別,會(huì)出現(xiàn)參數(shù)不足等錯(cuò)誤
如果你有一個(gè).c文件,可以在命令行下輸入代碼,對代碼進(jìn)行編譯:
比如我有一個(gè)c文件:
#include <stdio.h>
int main()
{
int n;
printf("This is a test file!\r\nInput a number: ");
scanf("%d",&n);
printf("The number is %d",n);
return 0;
}
然后在文件所在目錄下的命令行中輸入
gcc -g test.c -o test.exe
gcc 是編譯命令,剛剛我們安裝的,-g參數(shù)是表示編譯時(shí)帶上可調(diào)試記號,不然編譯好的東西只能運(yùn)行不能調(diào)試,-o 是表示指定輸出文件,后面緊跟輸出文件的名字,這一條指令就可以將c文件編譯成一個(gè)可執(zhí)行的二進(jìn)制文件。
然后可以在命令行下運(yùn)行:
./test.exe
如下圖:

我們用vscode進(jìn)行自動(dòng)編譯也是這個(gè)原理,其實(shí)所有的IDE都是這個(gè)原理。
問題:如果沒有配置系統(tǒng)環(huán)境變量會(huì)出現(xiàn)什么問題?
3、配置vscode
打開vscode載入剛剛的c文件,網(wǎng)上網(wǎng)友說編譯c文件要打開文件所在的文件夾,我嘗試了下,確實(shí)是這樣的。如下圖:

然后點(diǎn)調(diào)試,他會(huì)跳出一個(gè)launch.json的一個(gè)配置文件:
修改這幾個(gè)地方就好:
program一項(xiàng),指明了需要運(yùn)行的文件,$()的格式是表明這是變量,又vscode自己添加,根據(jù)英文可以知道這個(gè)變量的含義,miDebuggerPath是我們安裝gdb的路徑,前面提到過他,是用來調(diào)試的二進(jìn)制文件(可執(zhí)行二進(jìn)制文件也叫命令)。preLauchTask是一個(gè)重點(diǎn)(敲黑板),我們這個(gè)配置的意思是用gdb去調(diào)試 program參數(shù)指定的二進(jìn)制文件,但如果沒有這個(gè)文件怎么辦,結(jié)合之前的例子,我們知道我們可以調(diào)試運(yùn)行的是gcc編譯生成的二進(jìn)制test.exe文件,但如果沒有這個(gè)二進(jìn)制文件,我們是不是應(yīng)該先用gcc編譯一個(gè)出來?preLaunchTask就是干這個(gè)的!
生成tasks.json可以通過,菜單里的任務(wù),然后配置任務(wù),模板然后選other就可以,幾個(gè)必須的配置項(xiàng)就像下面:

version不重要,跳過。command和args其實(shí)剛好拼成我們前面的命令:
gcc -g xxx.c -o xxx.exe
這就自動(dòng)會(huì)生成我們要的exe文件了。然后我們再結(jié)合前面那個(gè)配置文件看一下:
假設(shè)我們編譯test.c文件,則${file}就是test.c,然后先執(zhí)行prelaunchTask,就相當(dāng)于執(zhí)行了
gcc -g test.c -o test.exe
由此生成了test.exe文件
然后又要用gdb調(diào)試${fileBasenameNoExtension}.exe,剛好就是test.exe,這里的配置和剛剛的輸出文件名要一致,相當(dāng)于運(yùn)行了:
gdb test.exe
這樣就啟動(dòng)調(diào)試了。
最后vscode里調(diào)試如下圖:

總結(jié)
到此這篇關(guān)于配置VScode c語言環(huán)境的圖文教程的文章就介紹到這了,更多相關(guān)配置VScode c語言環(huán)境內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C++面試題之結(jié)構(gòu)體內(nèi)存對齊計(jì)算問題總結(jié)大全
這篇文章主要給大家總結(jié)了關(guān)于C++面試題中結(jié)構(gòu)體內(nèi)存對齊計(jì)算問題的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),通過這些介紹的內(nèi)容對大家在面試C++工作的時(shí)候,會(huì)有一定的參考幫助,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2017-08-08
用C語言的泛型實(shí)現(xiàn)交換兩個(gè)變量值
在日常編程里面經(jīng)常會(huì)遇到交換兩個(gè)變量的內(nèi)容的任務(wù),對于泛型類型而言有兩種泛型策略來實(shí)現(xiàn),下面跟著小編一起來學(xué)習(xí)學(xué)習(xí)。2016-08-08
C++實(shí)現(xiàn)小型圖書管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)小型圖書管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03
Qt串口通信開發(fā)之Qt串口通信模塊QSerialPort開發(fā)完整實(shí)例(串口助手開發(fā))
這篇文章主要介紹了Qt串口通信開發(fā)之Qt串口通信模塊QSerialPort開發(fā)完整實(shí)例(串口助手開發(fā)),需要的朋友可以參考下2020-03-03

