1. 程式人生 > >如何在VSCode內編譯執行C++?

如何在VSCode內編譯執行C++?

說到c++編譯執行,大家第一個想到的應該是VS2015這種微軟出的大型IDE,對於一些大型專案也確實應該使用VS這種大型的IDE,但是作為一個業餘的愛好者,只是想使用c++來執行一些東西,比如一些演算法問題,那麼VS這種大型的IDE就顯得雞肋,還會消耗不必要的記憶體,這個時候VSCode這種可安裝外掛的編輯器就顯得非常高效。

主要步驟

  • 安裝VSCode
  • 在VSCode內安裝c++外掛
  • 安裝g++編譯、除錯環境
  • 修改VSCode除錯配置檔案

安裝VSCode

在VSCode內安裝c++外掛

Ctrl+P之後輸入

ext install c++

Paste_Image.png

安裝左邊第一個c/c++的外掛(微軟的官方外掛)。
安裝完成之後重啟VSCode生效。

安裝g++編譯、除錯環境

按照流程安裝,安裝完之後開啟介面:

Paste_Image.png
安裝此處選中的模組。全選中之後按左上角Installationt->Apply Changes進行安裝(最好翻牆)。
然後配置環境變數
別忘了這步就好(不懂配置的可以自己搜尋,配環境變數應該是對程式設計師而言最見到那的事了)
有時候修改環境變數需要重啟計算機

修改VSCode除錯配置檔案

用VSCode開啟一個資料夾(因為VSCode會生成一個配置檔案,所以必須在一個資料夾內執行)
新建一個a.cpp
寫一個最簡單的程式

Paste_Image.png
點選右邊的蜘蛛,再點選左邊除錯欄上方的設定按鈕,選擇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的路徑對應 
Paste_Image.png
替換後儲存,然後切換至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啟動除錯

Paste_Image.png
然後就可以設定斷點除錯了