VScode上配置 c語言環(huán)境的圖文教程
成成最近用到C語言了,之前比較喜歡用在vscode上面用python調試,今天我參考了一些文章,也嘗試了下在vscode上配置c語言的調試,其中包含一些相關的基礎知識。
1、在vscode里面下載c/c++官方插件:
2、安裝c/c++編譯器:
在windows上借助MinGW工具安裝,下載地址:[https://sourceforge.net/projects/mingw/ ]
安裝在d:\MinGW 下就好(自己新建一個文件夾),然后打開后這個樣子:
在里面找到mingw32-gcc.bin, mingw32-gcc-g++.bin, 以及mingw32-gdb.bin 第一個是c語言文件的編譯器,第二個是c++的,第三個是用來調試編譯后文件的。
然后點Installation->Apply all changes.
然后安裝好編譯器,下面設置環(huán)境變量,讓系統(tǒng)能夠自動找到gcc命令,我的電腦右擊->屬性->高級系統(tǒng)設置->環(huán)境變量,在系統(tǒng)變量里面找到path,這個path和linux里面那個path是一樣的,命令行界面下系統(tǒng)就根據這個path變量里面存的路徑,尋找命令。我們把MinGW的二進制可執(zhí)行文件的文件夾添加進去。
這個時候我們打開命令行輸入gcc,應該可以看到命令已經被識別,會出現參數不足等錯誤
如果你有一個.c文件,可以在命令行下輸入代碼,對代碼進行編譯:
比如我有一個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參數是表示編譯時帶上可調試記號,不然編譯好的東西只能運行不能調試,-o 是表示指定輸出文件,后面緊跟輸出文件的名字,這一條指令就可以將c文件編譯成一個可執(zhí)行的二進制文件。
然后可以在命令行下運行:
./test.exe
如下圖:
我們用vscode進行自動編譯也是這個原理,其實所有的IDE都是這個原理。
問題:如果沒有配置系統(tǒng)環(huán)境變量會出現什么問題?
3、配置vscode
打開vscode載入剛剛的c文件,網上網友說編譯c文件要打開文件所在的文件夾,我嘗試了下,確實是這樣的。如下圖:
然后點調試,他會跳出一個launch.json的一個配置文件:
修改這幾個地方就好:
program一項,指明了需要運行的文件,$()的格式是表明這是變量,又vscode自己添加,根據英文可以知道這個變量的含義,miDebuggerPath是我們安裝gdb的路徑,前面提到過他,是用來調試的二進制文件(可執(zhí)行二進制文件也叫命令)。preLauchTask是一個重點(敲黑板),我們這個配置的意思是用gdb去調試 program參數指定的二進制文件,但如果沒有這個文件怎么辦,結合之前的例子,我們知道我們可以調試運行的是gcc編譯生成的二進制test.exe文件,但如果沒有這個二進制文件,我們是不是應該先用gcc編譯一個出來?preLaunchTask就是干這個的!
生成tasks.json可以通過,菜單里的任務,然后配置任務,模板然后選other就可以,幾個必須的配置項就像下面:
version不重要,跳過。command和args其實剛好拼成我們前面的命令:
gcc -g xxx.c -o xxx.exe
這就自動會生成我們要的exe文件了。然后我們再結合前面那個配置文件看一下:
假設我們編譯test.c文件,則${file}就是test.c,然后先執(zhí)行prelaunchTask,就相當于執(zhí)行了
gcc -g test.c -o test.exe
由此生成了test.exe文件
然后又要用gdb調試${fileBasenameNoExtension}.exe,剛好就是test.exe,這里的配置和剛剛的輸出文件名要一致,相當于運行了:
gdb test.exe
這樣就啟動調試了。
最后vscode里調試如下圖:
總結
到此這篇關于配置VScode c語言環(huán)境的圖文教程的文章就介紹到這了,更多相關配置VScode c語言環(huán)境內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
C++中使用function和bind綁定類成員函數的方法詳解
這篇文章主要介紹了C++中使用function和bind綁定類成員函數的方法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-11-11C++11中l(wèi)onglong超長整型和nullptr初始化空指針
本文介紹?C++11?標準中新添加的?long?long?超長整型和?nullptr?初始化空指針,在?C++11?標準下,相比?NULL?和?0,使用?nullptr?初始化空指針可以令我們編寫的程序更加健壯,本文結合示例代碼給大家詳細講解,需要的朋友跟隨小編一起看看吧2022-12-12