VS Code編譯C/C++
C/C++環境的配置要比python的複雜許多,好幾個配置檔案要寫。
一、編譯C/C++的環境一般都是整合在我們的編輯器中的,如果電腦上有codeblock和dev c++的讀者可以去安裝路徑下找找MinGW資料夾,可以不用重複下載。而沒有的讀者則需要下載MinGW
二、配置環境變數,這裡就不重複截圖了,下面的是python配置環境變數的步驟,而這裡只要找到我們的MinGW資料夾下的bin目錄(我的是D:\MinGW\mingw64\bin),將其新增進去即可。
三、開啟VS Code,新增兩個外掛,記得都要重新載入或者重啟VS Code一次
四、開啟自己的專案,這裡以Hello World為例。
#include <iostream>
using namespace std;
int main() {
cout << "Hello World";
return 0;
}
開啟之後我們發現,標頭檔案出現了綠色的波浪線,這配置C/C++也是常見的問題之一,這是由於找不到標頭檔案導致的
我們點選邊上的橙色小燈泡,選擇“Edit ‘includePath’ setting”,之後會建立一個資料夾.vscode(這個資料夾存放了配置檔案),資料夾中有c_cpp_properties.json這個檔案。
這個檔案是json的格式,其中configurations引數下有三個元素,分別是Mac、Linux、Win32,我們根據自己的情況修改相應的配置檔案。下面以Win32為例,找到相應includePath引數。
{
"name": "Win32",
"includePath": [
"${workspaceFolder}"
],
"defines": [
"_DEBUG",
"UNICODE",
"_UNICODE"
],
"intelliSenseMode": "msvc-x64",
"browse": {
"path ": [
"${workspaceFolder}"
],
"limitSymbolsToIncludedHeaders": true,
"databaseFilename": ""
},
"cStandard": "c11",
"cppStandard": "c++17"
}
要新增的內容需要我們開啟我們的cmd,執行gcc -v -E -u c++ -這個命令,找到呼叫g++我們需要用到的檔案路徑,內容很多,我們找到最下面的路徑部分。
將這些引數新增到includePath後面,中間用逗號隔開,修改之後如下。細心的讀者會發現上面只有3條記錄,為什麼下面的引數我寫了5條,這是因為當你新增完cmd中輸出的內容之後,儲存配置檔案,檢視自己的C++檔案時,綠色波浪線仍然沒有消失,這裡我們可以再次點選小燈泡,VS Code會繼續補全我們的路徑。之後綠色波浪線消失,說明我們編譯路徑已經配置完成。
{
"name": "Win32",
"includePath": [
"${workspaceFolder}",
"D:/MinGW/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/7.3.0/include",
"D:/MinGW/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/7.3.0/include-fixed",
"D:/MinGW/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/7.3.0/../../../../x86_64-w64-mingw32/include",
"D:/MinGW/mingw64/lib/gcc/x86_64-w64-mingw32/7.3.0/include/c++",
"D:/MinGW/mingw64/lib/gcc/x86_64-w64-mingw32/7.3.0/include/c++/x86_64-w64-mingw32"
],
"defines": [
"_DEBUG",
"UNICODE",
"_UNICODE"
],
"intelliSenseMode": "msvc-x64",
"browse": {
"path": [
"${workspaceFolder}"
],
"limitSymbolsToIncludedHeaders": true,
"databaseFilename": ""
},
"cStandard": "c11",
"cppStandard": "c++17"
}
五、開啟C++檔案,我們按F5或者找到除錯執行,之後將顯示我們沒有launch.json檔案,VS Code會繼續為我們建立一個檔案,我們可以將launch.json檔案的內容刪除,並下面的程式碼完全複製進去。注意:複製進去之後要修改miDebuggerPath引數,這裡面填寫自己的gdb.exe路徑,至此我們的編譯配置已完成。
{
"version": "0.2.0",
"configurations": [
{
"name": "C++ Launch (GDB)",
"type": "cppdbg",
"request": "launch",
"targetArchitecture": "x86",
"program": "${file}.exe",
"miDebuggerPath":"D:\\MinGW\\mingw64\\bin\\gdb.exe",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceRoot}",
"externalConsole": true,
"preLaunchTask": "g++"
}
]
}
六、Ctrl+Shift+P,輸入Tasks:Configure Task,之後選擇使用模板建立tesks.json檔案
同樣覆蓋原始檔,填入下面的內容,用來配置編譯命令
{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"command": "g++",
"args": ["-g","${file}","-o","${file}.exe"], // 編譯命令
"problemMatcher": {
"owner": "cpp",
"fileLocation": ["relative", "${workspaceRoot}"],
"pattern": {
"regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$",
"file": 1,
"line": 2,
"column": 3,
"severity": 4,
"message": 5
}
}
}
七,按F5即可執行,但是這裡有一個小問題本人還沒有解決,就是console控制檯只閃出來一下,不能觀察到結果,不知道有沒有高人能夠指點一二。