如何在VSCode內編譯執行C++?
阿新 • • 發佈:2019-01-02
說到c++編譯執行,大家第一個想到的應該是VS2015這種微軟出的大型IDE,對於一些大型專案也確實應該使用VS這種大型的IDE,但是作為一個業餘的愛好者,只是想使用c++來執行一些東西,比如一些演算法問題,那麼VS這種大型的IDE就顯得雞肋,還會消耗不必要的記憶體,這個時候VSCode這種可安裝外掛的編輯器就顯得非常高效。
主要步驟
- 安裝VSCode
- 在VSCode內安裝c++外掛
- 安裝g++編譯、除錯環境
- 修改VSCode除錯配置檔案
安裝VSCode
在VSCode內安裝c++外掛
Ctrl+P之後輸入
ext install c++
安裝左邊第一個c/c++的外掛(微軟的官方外掛)。
安裝完成之後重啟VSCode生效。
安裝g++編譯、除錯環境
按照流程安裝,安裝完之後開啟介面:
安裝此處選中的模組。全選中之後按左上角Installationt->Apply Changes進行安裝(最好翻牆)。
然後配置環境變數
別忘了這步就好(不懂配置的可以自己搜尋,配環境變數應該是對程式設計師而言最見到那的事了)
有時候修改環境變數需要重啟計算機
修改VSCode除錯配置檔案
用VSCode開啟一個資料夾(因為VSCode會生成一個配置檔案,所以必須在一個資料夾內執行)
新建一個a.cpp
寫一個最簡單的程式
點選右邊的蜘蛛,再點選左邊除錯欄上方的設定按鈕,選擇c++編譯環境,將launch.json的檔案內容替換成如下:
{
"version": "0.2.0",
"configurations": [
{
"name": "C++ Launch (GDB)", // 配置名稱,將會在啟動配置的下拉選單中顯示
"type": "cppdbg", // 配置型別,這裡只能為cppdbg
"request": "launch", // 請求配置型別,可以為launch(啟動)或attach(附加)
"launchOptionType": "Local", // 偵錯程式啟動型別,這裡只能為Local
"targetArchitecture": "x86", // 生成目標架構,一般為x86或x64,可以為x86, arm, arm64, mips, x64, amd64, x86_64
"program": "${file}.exe", // 將要進行除錯的程式的路徑
"miDebuggerPath":"c:\\MinGW\\bin\\gdb.exe", // miDebugger的路徑,注意這裡要與MinGw的路徑對應
"args": ["blackkitty", "1221", "# #"], // 程式除錯時傳遞給程式的命令列引數,一般設為空即可
"stopAtEntry": false, // 設為true時程式將暫停在程式入口處,一般設定為false
"cwd": "${workspaceRoot}", // 除錯程式時的工作目錄,一般為${workspaceRoot}即程式碼所在目錄
"externalConsole": true, // 除錯時是否顯示控制檯視窗,一般設定為true顯示控制檯
"preLaunchTask": "g++" // 除錯會話開始前執行的任務,一般為編譯程式,c++為g++, c為gcc
}
]
}
注意miDebuggerPath要與MinGw的路徑對應
替換後儲存,然後切換至a.cpp,按F5進行除錯,此時會彈出一個資訊框要求你配置任務執行程式,點選它~
選擇任務執行程式,點選Others,跳出tasks.json的配置檔案。
替換成如下程式碼
{
"version": "0.1.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
}
}
}
儲存一下,然後切換至a.cpp,再次按F5啟動除錯
然後就可以設定斷點除錯了