vs code是微軟公司開發的跨平台編輯器,豐富的插件功能可以滿足各種編程語言的編碼,編譯和調試。由於vs code本身只是一個編輯器,所以你需要准備編譯工具鏈。本文針對的是windows系統,我這里使用mingw-w64作為編譯工具鏈。
1.下載安裝mingw-w64,並且把mingw-w64的bin目錄加入環境變量,安裝mingw-64的教程很多,不再復述。比如我添加的環境變量是:C:\Program Files\mingw-w64\x86_64-7.3.0\mingw64\bin
2.在微軟的官方網站上下載安裝vs code,目前最新版本是v.1.22.2 (2018/4/21)
3.打開vs code,在左邊的擴展商店里面搜索c++,安裝微軟官方的插件,重啟vs code或者點擊旁邊的"重新加載"生效
4.在磁盤上新建一個文件夾"HelloWorld",vs code打開這個文件夾,新建main.cpp
#include <iostream> using namespace std; int main() { cout << "hello world" << endl; for(int i = 0;i < 100;i++) { cout << i << endl; } return 0; }
然后你會發現 #include <iostream> 這一行下面有一條波浪線,提示你沒有找到iostream這個文件,所以不能包含,把鼠標移動到這一行會出現一個黃色的小燈泡,點擊小燈泡Edit includepath setting
定位到win32的位置,編輯includePath,把你的頭文件路徑添加上就可以了。
如果你不清楚頭文件路徑,可以使用命令打印頭文件的路徑:
gcc -v -E -x c++ -
添加好了后是這樣子的:
現在#include <iostream>就能夠正常被包含了。
5.編譯 :使用快捷鍵ctrl + shift +b編譯main.cpp,由於是第一次編譯,會提示你配置生成任務:
{ // See https://go.microsoft.com/fwlink/?LinkId=733558 // for the documentation about the tasks.json format "version": "2.0.0", "tasks": [ { "label": "build", "type": "shell", "command": "g++", "args": [ "-g", //表示在生成的可執行文件中加入調試信息,如果你要調試程序,-g參數必不可少 "main.cpp" ], "presentation": { "reveal": "never" }, "problemMatcher": [ "$gcc" ] } ] }
再次使用快捷鍵ctrl + shift +b就可以編譯main.cpp了,編譯完成可以看到生成了a.exe文件,這是編譯生成的默認文件名稱,想要自定義文件名可以使用 -o 參數。
6.調試:a.exe文件生成后,點擊左邊的調試按鈕:
顯示沒有配置,點擊可以添加配置,修改完成后記得保存:
{ // 使用 IntelliSense 了解相關屬性。 // 懸停以查看現有屬性的描述。 // 欲了解更多信息,請訪問: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "configurations": [ { "name": "gdb c++", "type": "cppdbg", "request": "launch", "program": "${workspaceFolder}/a.exe", "args": [], "stopAtEntry": false, "cwd": "${workspaceFolder}", "environment": [], "externalConsole": true, "MIMode": "gdb", "miDebuggerPath": "C:/Program Files/mingw-w64/x86_64-7.3.0/mingw64/bin/gdb.exe", "setupCommands": [ { "description": "Enable pretty-printing for gdb", "text": "-enable-pretty-printing", "ignoreFailures": true } ] } ] }
再次點擊調試按鈕可以看到程序在我設置斷點的地方停了下來,這樣我們就可以調試自己的程序了。布局的左邊會顯示變量的值,堆棧信息和線程信息。
通過上面的配置已經能夠滿足基本的要求了,但是現在需要先編譯再調試,分兩個步驟比較麻煩,接下來就把編譯調試一氣呵成。
首先點擊vs code的調試按鈕,再點擊設置按鈕,修改調試的配置文件
{ // 使用 IntelliSense 了解相關屬性。 // 懸停以查看現有屬性的描述。 // 欲了解更多信息,請訪問: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "configurations": [ { "name": "gdb c++", "type": "cppdbg", "request": "launch", "program": "${workspaceFolder}/a.exe", "args": [], "stopAtEntry": false, "cwd": "${workspaceFolder}", "environment": [], "externalConsole": true, "MIMode": "gdb", "miDebuggerPath": "C:/Program Files/mingw-w64/x86_64-7.3.0/mingw64/bin/gdb.exe", "setupCommands": [ { "description": "Enable pretty-printing for gdb", "text": "-enable-pretty-printing", "ignoreFailures": true } ], "preLaunchTask": "build" } ] }
注意到我們只添加了以下內容,表示在調試之前啟動任務 "build", 這個任務名字是上面編譯階段新增的任務名稱。二者必須需要保持一致
, "preLaunchTask": "build"
保存修改后,我們只需要直接點擊調試按鈕就可以調試代碼了,因為系統自動為我們在調試之前編譯過了。