前提
創(chuàng)新互聯(lián)公司是創(chuàng)新、創(chuàng)意、研發(fā)型一體的綜合型網(wǎng)站建設(shè)公司,自成立以來公司不斷探索創(chuàng)新,始終堅(jiān)持為客戶提供滿意周到的服務(wù),在本地打下了良好的口碑,在過去的十載時(shí)間我們累計(jì)服務(wù)了上千家以及全國政企客戶,如玻璃隔斷等企業(yè)單位,完善的項(xiàng)目管理流程,嚴(yán)格把控項(xiàng)目進(jìn)度與質(zhì)量監(jiān)控加上過硬的技術(shù)實(shí)力獲得客戶的一致贊美。
安裝 Visual Studio Code
安裝 C/C++ 擴(kuò)展 for VS Code 也可以在vscode的extension界面搜索'c'查找插件安裝
獲取最新的 Mingw-w64 ,或者通過 MSYS2 安裝
添加 Mingw-w64的bin文件夾路徑到系統(tǒng)環(huán)境變量中,bin路徑取決于Mingw-w64的安裝路徑,C:\XXX\XXX\mingw64\bin
示例,步驟如下
path
變量(個(gè)人用戶的也可以),點(diǎn)擊編輯檢查是否成功安裝,打開cmd,輸入
gcc -v
如果沒有成功輸出版本號,那說明安裝不成功
Hello World!
創(chuàng)建一個(gè)空文件夾projects
用來存放vscode項(xiàng)目文件。再projects
中創(chuàng)建一個(gè)子文件夾helloworld
,然后在vscode中打開這個(gè)helloworld
文件夾。
可以在cmd
完成這項(xiàng)操作:
mkdir projects
cd projects
mkdir helloworld
cd helloworld
code .
code .
命令是指在此文件夾中打開vscode。
添加源文件
添加helloworld.c
復(fù)制下面代碼,添加到文件中
#include
int main()
{
printf("Hello world!");
return 0;
}
這一步要?jiǎng)?chuàng)建tasks.json
,文件是用于告訴vs code怎么編譯程序
在主菜單中,選擇 Terminal > Configure Default Build Task. 選擇一個(gè)編譯器點(diǎn)擊,c語言就選擇gcc,c++就選擇g++
選擇之后,tasks.json
會被創(chuàng)建在.vscode
文件夾中。文件內(nèi)容與下文相似
{
"tasks": [
{
"type": "cppbuild",
"label": "C/C++: gcc.exe build active file",
"command": "C:/msys64/mingw64/bin/gcc.exe",
"args": ["-g", "${file}", "-o", "${fileDirname}\\${fileBasenameNoExtension}.exe"],
"options": {
"cwd": "${fileDirname}"
},
"problemMatcher": ["$gcc"],
"group": {
"kind": "build",
"isDefault": true
},
"detail": "compiler: C:/msys64/mingw64/bin/gcc.exe"
}
],
"version": "2.0.0"
}
command
: 指定編譯器的路徑
args
: 指定將傳遞給gcc的命令行參數(shù),這些參數(shù)必須按照編譯器期望的順序指定。這些參數(shù)告訴gcc獲取活動(dòng)文件(${file}
),先編譯它,然后在當(dāng)前文件夾(${fileDirname}
)創(chuàng)建一個(gè)可執(zhí)行文件,其名字與活動(dòng)文件一樣,但是后綴是.exe
。(${fileBasenameNoExtension}.exe
)
label
: 這是你在任務(wù)列表中看到的,可以隨便給它起個(gè)名字。
"isDefault": true
指定該任務(wù)將在按下Ctrl+Shift+B
時(shí)運(yùn)行,只是為了方便使用,也可以在 Terminal: Run Build Task 中編譯文件
運(yùn)行編譯
回到helloworld.c
,可以通過Ctrl+Shift+B
快捷鍵編譯,也可以點(diǎn)擊Terminal: Run Build Task編譯
編譯成功之后,會在集成的terminal中輸出類似下圖的信息
點(diǎn)擊任何鍵退出界面。運(yùn)行 dir
命令將會看到新創(chuàng)建的 helloworld.exe
可以在terminal中運(yùn)行exe文件 (helloworld.exe 或者 .\helloworld.exe)
圖片僅作參考,本實(shí)例實(shí)際運(yùn)行輸出為
Hello world!
編輯json文件
使用"${workspaceFolder}\\*.c"
代替 ${file}
,編譯時(shí)會編譯當(dāng)前文件夾中所有的.c
文件,輸出文件名也要修改為"${fileDirname}\\${fileBasenameNoExtension}.exe"
在此操作中會創(chuàng)建一個(gè)launch.json
文件。當(dāng)你按F5調(diào)試程序時(shí),VS Code需要使用launch文件來啟動(dòng)GDB調(diào)試器。
gcc.exe build and debug active file
(c語言就選gcc,c++就選取g++)完成操作后會創(chuàng)建一個(gè)launch.json
文件,內(nèi)容與下方類似
{
"version": "0.2.0",
"configurations": [
{
"name": "g++.exe - Build and debug active file",
"type": "cppdbg",
"request": "launch",
"program": "${fileDirname}\\${fileBasenameNoExtension}.exe",
"args": [],
"stopAtEntry": false,
"cwd": "${fileDirname}",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"miDebuggerPath": "C:\\msys64\\mingw64\\bin\\gdb.exe",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
],
"preLaunchTask": "C/C++: g++.exe build active file"
}
]
}
program
: 設(shè)置指定要調(diào)試的程序
stopAtEntry
: 默認(rèn)為false,為true時(shí),debug時(shí)會在main函數(shù)開頭設(shè)置斷點(diǎn)
preLaunchTask
: 設(shè)置用于指定在啟動(dòng)前要執(zhí)行的任務(wù),確保與tasks.json
中label
保持一致
如果想要對C/C++擴(kuò)展的擁有更多的控制權(quán),需要?jiǎng)?chuàng)建一個(gè)c_cpp_properties.json
文件。這將允許你改變設(shè)置,如編譯器的路徑,包括路徑,c++標(biāo)準(zhǔn)(默認(rèn)是c++ 17)以及更多。
使用快捷鍵Ctrl+Shift+P
,搜索C/C++: Edit Configurations (UI)
點(diǎn)擊就會打開設(shè)置界面。人為改變設(shè)置,就會記錄在c_cpp_properties.json
文件中