1. 程式人生 > >【VSCode】Windows下VSCode編譯除錯c/c++

【VSCode】Windows下VSCode編譯除錯c/c++

本文轉自:http://blog.csdn.net/c_duoduo/article/details/51615381

本人根據自己的操作,修改了一些細節,用於C語言除錯。

————————– 以下是原文 ————————-

這篇文章為blackkitty記錄在windows下使用vscode編譯除錯c/c++的詳細過程

首先看效果 
設定斷點,變數監視,呼叫堆疊的檢視: 
設定斷點,變數監視,呼叫堆疊的檢視

條件斷點的使用: 
條件斷點的使用

下面是配置過程:

總體流程:

  1. 下載安裝vscode
  2. 安裝cpptools外掛
  3. 安裝編譯、除錯環境
  4. 修改vscode除錯配置檔案
  5. 完了

安裝cpptools外掛 
開啟vscode,按ctrl+e開啟快速命令框,輸入以下命令後等待

ext install cpptools

vscode在短暫的聯網查詢後會列出外掛列表,如圖: 
這裡寫圖片描述 
點選箭頭所指處的按鈕安裝外掛,安裝過程可能會有些慢耐心等待 
安裝完成後vscode會提示你重啟vscode,此時重啟即可

安裝編譯、除錯環境

目前windows下除錯僅支援 Cygwin 和 MinGW。 
這裡使用的是MinGW. 
下面是MinGW的安裝配置過程: 
http://mingw.org/ 
進入官網點選右側 Download Installer下載安裝器 
開啟安裝器點選install準備安裝: 
這裡寫圖片描述

選擇一個安裝目錄,預設為C:\MinGW這裡選擇的是A:\MinGW 
點選Continue開始安裝,安裝過程需聯網,若安裝時提示error則需翻牆安裝

 
安裝過程很快,結束後Continue按鈕恢復為可用狀態,點選完成安裝。

這裡寫圖片描述 
開啟MinGW安裝管理器進行進一步配置

這裡寫圖片描述

//除錯C語言的話,選中下面這個也可以//


注意這裡gdb必選,否則無法除錯 //重要
這裡寫圖片描述 
選中幾個需要的項右鍵Make for Installation進行標記,其中gcc和g++為c和c++編譯器 
選擇完全部想要安裝的項後點擊左上角Installation選單下的Apply Changes應用修改,過程需聯網,中間出現error可先繼續,若最後失敗則需翻牆更新,建議翻牆

然後配置系統環境變數path,這一步為必須 
在 我的電腦 上右鍵 屬性: 
然後按照下面步驟做即可,注意最後新建的項要與之前MinGW安裝位置相對應 
這裡寫圖片描述

修改vscode除錯配置檔案 
再次開啟vscode,注意配置系統環境變數path後重啟一下vscode 
注意vscode除錯需要在開啟的資料夾中進行

開啟資料夾後,新建test.cpp進行輸入程式碼測試: 
這裡寫圖片描述

當你寫的C語言有#include等標頭檔案時,需要配置包含標頭檔案,用滑鼠放在#include關鍵字上面,會出現一個小燈泡,提示你包含檔案沒有找到。

點選小燈泡,新增include path 設定

VSC會在你開啟的資料夾下新建.vscode資料夾,VSC的配置檔案都放在此資料夾內,包括:c_cpp_properties.json,launch.json,tasks.json

c_cpp_properties.json

{
    "configurations": [
        {
            "name": "Mac",
            "includePath": ["/usr/include"],
            "browse" : {
                "limitSymbolsToIncludedHeaders" : true,
                "databaseFilename" : ""
            }
        },
        {
            "name": "Linux",
            "includePath": ["/usr/include"],
            "browse" : {
                "limitSymbolsToIncludedHeaders" : true,
                "databaseFilename" : ""
            }
        },
        {
            "name": "Win32",
"includePath": ["C:/MinGW/include"],
            "browse" : {
                "limitSymbolsToIncludedHeaders" : true,
                "databaseFilename" : ""
            }
        }
    ]
}

對於WINDOWS,把MinGW的include資料夾的位置替換上面的位置。


如圖示進入除錯介面選擇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": "gcc"                    // 除錯會話開始前執行的任務,一般為編譯程式,c++為g++, c為gcc
        }
    ]

}

注意miDebuggerPath要與MinGw的路徑對應

替換後儲存,然後切換至test.cpp,按F5進行除錯,此時會彈出一個資訊框要求你配置任務執行程式,點選它~ 
這裡寫圖片描述 
在這裡隨便選一個:

這裡寫圖片描述

然後用下面程式碼替換:

{
    "version": "0.1.0",
    "command": "gcc",
    "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
        }
    }
}

儲存一下,然後切換至test.cpp,再次按F5啟動除錯~ 

這裡寫圖片描述

完了!