VScode上配置 c語(yǔ)言環(huán)境的圖文教程
成成最近用到C語(yǔ)言了,之前比較喜歡用在vscode上面用python調(diào)試,今天我參考了一些文章,也嘗試了下在vscode上配置c語(yǔ)言的調(diào)試,其中包含一些相關(guān)的基礎(chǔ)知識(shí)。
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語(yǔ)言文件的編譯器,第二個(gè)是c++的,第三個(gè)是用來調(diào)試編譯后文件的。
然后點(diǎn)Installation->Apply all changes.
然后安裝好編譯器,下面設(shè)置環(huán)境變量,讓系統(tǒng)能夠自動(dòng)找到gcc命令,我的電腦右擊->屬性->高級(jí)系統(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)被識(shí)別,會(huì)出現(xiàn)參數(shù)不足等錯(cuò)誤
如果你有一個(gè).c文件,可以在命令行下輸入代碼,對(duì)代碼進(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)試記號(hà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文件了。然后我們?cè)俳Y(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語(yǔ)言環(huán)境的圖文教程的文章就介紹到這了,更多相關(guān)配置VScode c語(yǔ)言環(huán)境內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C++中使用function和bind綁定類成員函數(shù)的方法詳解
這篇文章主要介紹了C++中使用function和bind綁定類成員函數(shù)的方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-11-11C語(yǔ)言基礎(chǔ)函數(shù)用法示例詳細(xì)解析
最接地氣的C函數(shù)基礎(chǔ)介紹,此處對(duì)于函數(shù)的相關(guān)知識(shí)點(diǎn)做一些簡(jiǎn)要的介紹,作者實(shí)屬初學(xué),寫博客也是作者學(xué)習(xí)的一個(gè)過程,難免文章中有內(nèi)容理解不到位或者有不當(dāng)之處,還請(qǐng)朋友們不吝指正2021-11-11c++ vector對(duì)象相關(guān)總結(jié)
這篇文章主要介紹了c++ vector對(duì)象的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)使用c++,感興趣的朋友可以了解下2021-02-02C++11中l(wèi)onglong超長(zhǎng)整型和nullptr初始化空指針
本文介紹?C++11?標(biāo)準(zhǔn)中新添加的?long?long?超長(zhǎng)整型和?nullptr?初始化空指針,在?C++11?標(biāo)準(zhǔn)下,相比?NULL?和?0,使用?nullptr?初始化空指針可以令我們編寫的程序更加健壯,本文結(jié)合示例代碼給大家詳細(xì)講解,需要的朋友跟隨小編一起看看吧2022-12-12C語(yǔ)言用封裝方法實(shí)現(xiàn)飛機(jī)大戰(zhàn)游戲
這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言用封裝方法實(shí)現(xiàn)飛機(jī)大戰(zhàn)游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-05-05C語(yǔ)言實(shí)現(xiàn)統(tǒng)計(jì)字符串單詞數(shù)
這篇文章主要介紹了C語(yǔ)言實(shí)現(xiàn)統(tǒng)計(jì)字符串單詞數(shù),代碼非常的簡(jiǎn)潔,有需要的小伙伴快來參考下。2015-03-03