目錄
簡介
新工作需要切換到Windows下搬磚,得暫時告別我心愛的Vim了,淚奔三分鐘。聽說Windows下有個地表最強編輯器Visual Studio Code,盤它!
本文介紹了Windows10環境下安裝Visual Studio Code(Version 1.42)並搭建C/C++開發調試環境的所有流程。
VSCode安裝
VSCode是一款功能強大的免費編譯器,同時支持Windows和Linux平臺,操作友好功能全面,且原生支持中文界面,太優秀了。
官網下載:https://code.visualstudio.com/
下載安裝即可,注意需要勾選“添加到環境變量”選項。
VSCode語言設置
VSCode的默認語言是英文,我們可以將其更改爲中文。
按快捷鍵Ctrl+Shift+P打開命令窗口,搜索>language
之後我們依次選擇“Configure Display Language”->“Install additional languages...”->“Install”
中文(簡體)語言包安裝完成後按提示重啓即可。
安裝開發套件
在應用商店中搜索並依次安裝C/C++插件,跟安裝語言包的方法一樣。
推薦安裝並啓用以下插件:
【C/C++支持】C/C++
【程序運行環境】Code Runner
【自動補齊】C++ Intellisense
【Clang編譯環境】C/C++ Clang Command Adapter
【調試工具】Native Debug
【靜態檢查工具】C/C++ Advanced Lint
構建C/C++編譯環境
VSCode只是一個編輯器,本身並不支持編譯運行功能。因此我們需要通過插件來配置編譯運行環境,本文選用MinGW-W64+Clang環境。
安裝Clang
Clang官網下載:http://releases.llvm.org/download.html
這裏按電腦配置選擇,我選擇Pre-Built Binaries: Windows(64bit)(.sig),最終下載LLVM-9.0.0-win64.exe。
下載完成後安裝,安裝時選擇“Add LLVM to the system PATH for all users”。安裝完成後可能會提示“MSVC integration install failed”。這是因爲Clang默認使用msvc工具鏈,但我們採用了MinGW,因此無視即可。裝完後Win+R打開cmd,運行clang -v觀察到以下結果則安裝成功。
安裝MinGW
MinGW下載:http://www.mingw-w64.org/doku.php/download/mingw-builds
這裏給出的是在線安裝方式,如果下載了離線安裝壓縮包的話,選擇合適位置解壓,將mingw64/bin加入環境變量PATH即可。
先下載mingw-w64安裝工具mingw-w64-install.exe,下載完成後直接運行,需要配置以下五個參數,注意別搞錯了:
- Version:指定版本號,從4.9.1-8.1.0,按需選擇,沒有特殊需求就用最新版本;
- Architecture:按操作系統來選,64位系統選擇x86_64,32位系統選擇i686;
- Threads:設置線程標準,可選posix或win32;
- Exception:設置異常處理標準,x86_64可選seh或sjlj,i686則爲dwarf或sjlj;
- Build revision:構建版本號,默認只有一個0,如果有多個選最大的即可。
之後一路next安裝,裝完後Win+R打開cmd,運行gcc -v觀察到以下結果則安裝成功。
至此VSCode下C/C++運行環境就搭建好了。
VSCode工程配置
系統合適位置創建工程目錄,注意路徑全部英文且沒有空格(例如C:\Users\Administrator\Desktop\test)。
VSCode打開該目錄,並在該目錄下新建目錄.vscode,將以下launch.json和tasks.json文件拷貝到.vscode目錄中。
launch.json
{
// 使用 IntelliSense 瞭解相關屬性。
// 懸停以查看現有屬性的描述。
// 欲瞭解更多信息,請訪問: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "gcc.exe build and debug active file", // 配置名稱,會顯示在啓動配置的下拉菜單中
"type": "cppdbg", // 配置類型,這裏只能爲cppdbg
"request": "launch", // 請求配置類型,可以爲launch(啓動)或attach(附加)
"program": "${fileDirname}\\${fileBasenameNoExtension}.exe", // 待調試的可執行程序路徑
"args": [], // 程序啓動時的傳參,按需求填即可
"stopAtEntry": true, // 是否在main入口處打斷點,一般選true
"cwd": "${workspaceFolder}", // 調試程序時的工作路徑
"environment": [], // 環境變量設置
"externalConsole": true, // 調試時是否顯示控制檯窗口,一般設置爲true顯示控制檯
"MIMode": "gdb", // 指定調試器,可以爲gdb或lldb。但windows下沒有預編譯好的lldb,還是老老實實gdb吧
"miDebuggerPath": "C:\\TDM-GCC-64\\bin\\gdb.exe", // gdb的調用路徑,\\爲轉義
"setupCommands": [
{
"description": "爲 gdb 啓用整齊打印",
"text": "-enable-pretty-printing",
"ignoreFailures": false // 調試時是否忽略失敗,當然要false
}
],
"preLaunchTask": "gcc.exe build active file" // 調試開始前要執行的動作,一般爲編譯文件。此處內容應與tasks.json的taskName一致
}
]
}
tasks.json
{
"version": "2.0.0",
"tasks": [
{
"label": "gcc.exe build active file", // 任務名稱,與launch.json的preLaunchTask相對應
"type": "shell",
"command": "gcc", // 如果用MinGW,編譯c用gcc,編譯c++用g++
"args": [ // 編譯參數
"${file}",
"-o", // 指定輸出文件名,不加該參數則默認輸出a.exe
"${fileDirname}/${fileBasenameNoExtension}.exe", // 注意這裏用/標識目錄而不是\\
"-g", // 支持gdb調試
"-Og", // -Og 是在gcc 4.8版本引入的,按照源碼自動確定優化等級,基本相當於沒有優化
"-Wall", // 開啓額外的編譯警告
"-static-libgcc", // 靜態鏈接
"-fcolor-diagnostics",
"--target=x86_64-w64-mingw", // tasks.json的默認target爲msvc,不加這一條就會找不到頭文件
"-std=c11" // c++最新標準爲c++1z即c++17,C語言最新標準爲c11,可根據需要自行修改
],
"group": {
"kind": "build",
"isDefault": true // 設爲false則可做到一個tasks.json配置多個編譯指令
},
"presentation": {
"echo": true,
"reveal": "always", // 設置是否在“終端”中顯示編譯信息,可以爲always,silent,never。沒說的,always。
"focus": false,
"panel": "shared" // 不同的文件的編譯信息共享一個終端面板
},
"problemMatcher": { // 編譯錯誤輸出配置
"owner": "cpp",
"fileLocation": [
"relative",
"/"
],
"pattern": {
"regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$", // 正則表達式,用於描述在“問題”欄中顯示的信息。
"file": 1,
"line": 2,
"column": 3,
"severity": 4,
"message": 5
}
}
}
]
}
測試
在test目錄下創建test.c測試文件。
#include <stdio.h>
int main(int argc, char const *argv[])
{
/* code */
printf("Hello world \n");
return 0;
}
Ctrl+Alt+n運行,或在main()文件源碼處鼠標右鍵選擇Run Code運行程序,完結撒花~