0.前言
本文已配置C++環境為例,本文主要是面向剛開始接觸VS Code的朋友,采用生成默認配置任務的方法,在編寫本文過程中大量參考了官方文檔,感興趣的朋友可直接前往傳送門。
環境: win10 + VS Code 1.43.1
官方下載地址:https://code.visualstudio.com/
官方文檔傳送門:https://code.visualstudio.com/docs
1. 從官方下載地址下載VS Code並安裝,安裝過程應盡量避免中文路徑。
2. 打開軟件,在VSCode最左側有五個選項,從上到下依次為資源管理器、搜索、源代碼管理器、運行和extension。截圖中含有task.json等文件,先不用管它們,剛開始配置是沒有這些文件的。
圖1
3. 安裝extension
根據個人喜好可以安裝不同的擴展(extension),點擊最后一個選項搜索即可,上述是安裝了中文插件后截圖,直接鍵入Chinese,第一個即為中文擴展。同樣地,鍵入C++,然后安裝擴展。
4.下載C++編譯器
這里下載mingW-W64,下載傳送門:http://mingw-w64.org/doku.php/download。下載中間這個,並安裝,安裝過程中的setting一般保持默認設置,其他的根據需要修改。安裝完成后,需要將安裝路徑添加到系統環境變量中,即“路徑\mingw64\bin”,安裝完成后需要重啟。
5.配置環境
在配置環境過程中,會產生一個.vscode 文件夾,里面包含三個配置文件:
tasks.json:編譯指令 (build instructions)
launch.json:調試設置 (debugger settings)
c_cpp_properties.json:編譯器路徑和IntelliSense設置 (compiler path and IntelliSense settings)
(1)配置task.json
首先,在目標目錄下新建文件夾vscode(當然名稱隨你喜好),然后如圖2,依次打開:文件-->打開文件夾-->選擇vscode,結果如圖3。點擊圖3方框中“新建文件”新建main.cpp,並粘貼以下代碼,結果如圖4.
#include <iostream> #include <vector> #include <string>
using namespace std; int main() { vector<string> msg {"Hello", "C++", "World", "from", "VS Code", "and the C++ extension!"}; for (const string& word : msg) { cout << word << " "; } cout << endl; }
圖2
圖3
圖4
然后依次點擊最上方工具欄中 終端-->配置默認生成任務,然后選擇C/C++:g++.exe build active file ,結果如圖7,如果這里彈出的候選方式中沒有“C/C++:g++.exe build active file”,可參考附錄解決方法。
圖5
圖6
圖7
為了更方便注釋與說明,將tasks.json寫在下面,需要注意的是在VS Code中路徑中是”\\“而不是單個"\",與visual studio2015一致。
{ // 有關 tasks.json 格式的文檔,請參見 // https://go.microsoft.com/fwlink/?LinkId=733558 "version": "2.0.0", "tasks": [ { "type": "shell", "label": "g++.exe build active file", // label:左側”運行“選項中編譯器的名稱,可以任意指定。 "command": "D:\\4.Software\\mingw-W64\\mingw64\\bin\\g++.exe", // command:指定了本程序運行編譯器的路徑,這里是g++.exe。 "args": [ // args: args數組指定了傳遞給編譯器的命令(commamd-line)參數,通過這個參數數組會告訴編譯器 "-g", // 處理的是”${file}“文件,並且在${fileDirname}目錄下生成${fileBasenameNoExtension}.exe "${file}", "-o", "${fileDirname}\\${fileBasenameNoExtension}.exe" ], "options": { "cwd": "D:\\4.Software\\mingw-W64\\mingw64\\bin" }, "problemMatcher": [ // problemMathcher: The problemMatcher value selects the output parser to use for finding errors and warnings in the compiler output. "$gcc" ], "group": { "kind": "build", // group中的”isDefault“參數僅僅是為了方便,當其為True時,可通過快捷鍵ctrl+shift+B運行生成任務,如果為False,無法通過快捷鍵生成,但可以通過 終端-->運行生成任務。 "isDefault": true } } ] }
回到main.cpp,點擊 終端 -->運行生成任務,在底部終端會顯示"終端被任務重用,按任意鍵繼續" 。 同時也可以看到有兩個參數,其對應於tasks.json中的args數組,-g參數表示當前編譯的是main.cpp,-o參數表示當前生成的可執行exe文件的名稱和路徑。
圖8
圖9
(2) 配置調試器 debugger
依次點擊 運行-->啟動調試,出現圖11所示,然后選擇”C++(GDB/LLB)“,出現圖12,選擇第一個g++.exe,然后自動生成launch.json。
圖10
圖11
圖12
launch.json如下:
{ // 使用 IntelliSense 了解相關屬性。 // 懸停以查看現有屬性的描述。 // 欲了解更多信息,請訪問: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "configurations": [ { "name": "g++.exe build and debug active file", "type": "cppdbg", "request": "launch", "program": "${fileDirname}\\${fileBasenameNoExtension}.exe", //正調試的可執行文件路徑 "args": [], "stopAtEntry": false, "cwd": "${workspaceFolder}", "environment": [], "externalConsole": false, "MIMode": "gdb", "miDebuggerPath": "D:\\4.Software\\mingw-W64\\mingw64\\bin\\gdb.exe", "setupCommands": [ { "description": "為 gdb 啟用整齊打印", "text": "-enable-pretty-printing", "ignoreFailures": true } ], "preLaunchTask": "g++.exe build active file" } ] }
(3) 配置 c_cpp_properties.json
ctrl+shift+p然后鍵入C/C++,選擇"C/C++編輯配置(UI)"然后自動生成c_cpp_properties.json。
圖13
圖14
c_cpp_properties.json:
{ "configurations": [ { "name": "Win32", "includePath": [ "${workspaceFolder}/**" ], "defines": [ "_DEBUG", "UNICODE", "_UNICODE" ], "compilerPath": "D:\\4.Software\\mingw-W64\\mingw64\\bin\\gcc.exe", "cStandard": "c11", "cppStandard": "c++17", "intelliSenseMode": "clang-x64" } ], "version": 4 }
結語
本文主要記錄初次使用VS Code配置過程,在這三個json文件中一些參數的具體含義現在還沒弄懂,后續會繼續更新VS Code使用相關文章,歡迎繼續關注。(Date on 25, Mar, 2020)
其他博客配置方法:
[1] https://zhuanlan.zhihu.com/p/110027894?from_voters_page=true
附錄
在配置默認生成任務時,可能會出現無“C/C++:g++.exe build active file”的情況,那么就需要手動改改。
ctrl+shift+p然后鍵入C/C++,選擇"C/C++編輯配置(UI)"然后自動生成c_cpp_properties.json。就像上邊的(3) 配置 c_cpp_properties.json一樣,找到“編譯器路徑”,然后再下拉框中選擇g++,值得注意的是,如果先前存在tasks.json,最好先刪掉,然后選擇g++,再手動生成默認配置任務。