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)能夠自動找到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)被識別,會出現(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)行自動編譯也是這個(gè)原理,其實(shí)所有的IDE都是這個(gè)原理。
問題:如果沒有配置系統(tǒng)環(huán)境變量會出現(xiàn)什么問題?
3、配置vscode
打開vscode載入剛剛的c文件,網(wǎng)上網(wǎng)友說編譯c文件要打開文件所在的文件夾,我嘗試了下,確實(shí)是這樣的。如下圖:

然后點(diǎn)調(diào)試,他會跳出一個(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
這就自動會生成我們要的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
這樣就啟動調(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++中使用function和bind綁定類成員函數(shù)的方法詳解
這篇文章主要介紹了C++中使用function和bind綁定類成員函數(shù)的方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-11-11
C++11中l(wèi)onglong超長整型和nullptr初始化空指針
本文介紹?C++11?標(biāo)準(zhǔn)中新添加的?long?long?超長整型和?nullptr?初始化空指針,在?C++11?標(biāo)準(zhǔn)下,相比?NULL?和?0,使用?nullptr?初始化空指針可以令我們編寫的程序更加健壯,本文結(jié)合示例代碼給大家詳細(xì)講解,需要的朋友跟隨小編一起看看吧2022-12-12
C語言用封裝方法實(shí)現(xiàn)飛機(jī)大戰(zhàn)游戲
這篇文章主要為大家詳細(xì)介紹了C語言用封裝方法實(shí)現(xiàn)飛機(jī)大戰(zhàn)游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-05-05
C語言實(shí)現(xiàn)統(tǒng)計(jì)字符串單詞數(shù)
這篇文章主要介紹了C語言實(shí)現(xiàn)統(tǒng)計(jì)字符串單詞數(shù),代碼非常的簡潔,有需要的小伙伴快來參考下。2015-03-03

