1、下載、安裝 c/c++編譯器
2、下載、安裝 vscode
3、vscode內安裝c/c++擴展
4、配置c/c++環境
1、我選擇的是MinGW編譯器,https://sourceforge.net/projects/mingw-w64/files/mingw-w64/
x86_64 和 i686 架構
w64 和 posix 是線程,windows選 w64,linux選posix
最后面是異常模型,我選的seh
win10 64位 選的是 x86_64-win32-seh
下載的 解壓
將 \mingw64\bin 加到環境變量中
(注意 選擇MinGW-W64-install.exe 后續下載可能會很慢)
2、下載安裝vscode。 https://code.visualstudio.com/ 自行根據操作系統選擇下載,一路next即可
3、安裝好vscode后,Ctrl+Shift+x 打開擴展,搜索 c/c++ 后安裝
4、配置c/c++環境
4.1、配置編譯器
vscode中 按 Ctrl+Shift+P,在調出的命令面板中 輸入 c/c++, 選擇 c/c++:編輯配置(UI) 或 c/c++:Edit Configurations(UI) 進入配置
要改兩個地方
(1)、編譯器路徑,改為MinGW解壓路徑中g++.exe的完整路徑
(2)、IntelliSense 模式 改為 gcc-x64
配置完成后,此時在側邊欄可以發現多了一個.vscode文件夾,並且里面有一個c_cpp_properties.json文件,內容如下,說明上述配置成功。現在可以通過Ctrl+<`快捷鍵打開內置終端並進行編譯運行了。
1 { 2 "configurations": [ 3 { 4 "name": "Win32", 5 "includePath": [ 6 "${workspaceFolder}/**" 7 ], 8 "defines": [ 9 "_DEBUG", 10 "UNICODE", 11 "_UNICODE" 12 ], 13 "windowsSdkVersion": "10.0.17763.0", 14 "compilerPath": "E:\\C\\x86_64-8.1.0-release-win32-seh-rt_v6-rev0\\mingw64\\bin\\g++.exe", 15 "cStandard": "c17", 16 "cppStandard": "c++17", 17 "intelliSenseMode": "gcc-x64" 18 } 19 ], 20 "version": 4 21 }
4.2、配置構建任務
Ctrl+Shift+P調出命令面板,輸入tasks,選擇“Tasks:Configure Default Build Task”:
然后再選擇 c/c++:g++.exe build active file
此時會出現一個名為tasks.json的配置文件,內容如下:
1 { 2 "version": "2.0.0", 3 "tasks": [ 4 { 5 "type": "cppbuild", 6 "label": "C/C++: g++.exe build active file", 7 "command": "E:\\C\\x86_64-8.1.0-release-win32-seh-rt_v6-rev0\\mingw64\\bin\\g++.exe", 8 "args": [ 9 "-g", 10 "${file}", 11 "-o", 12 "${fileDirname}\\${fileBasenameNoExtension}.exe" 13 ], 14 "options": { 15 "cwd": "E:\\C\\x86_64-8.1.0-release-win32-seh-rt_v6-rev0\\mingw64\\bin" 16 }, 17 "problemMatcher": [ 18 "$gcc" 19 ], 20 "group": { 21 "kind": "build", 22 "isDefault": true 23 }, 24 "detail": "compiler: E:\\C\\x86_64-8.1.0-release-win32-seh-rt_v6-rev0\\mingw64\\bin\\g++.exe" 25 } 26 ] 27 }
4.3、配置調試設置
點擊菜單欄的Debug-->Start Debugging:
vscode會新建 launch.json文件,preLaunchTask 要填上一步task.json的label的內容,miDebuggerPath 要填寫 MinGW解壓路徑中gdb.exe的完整路徑
1 { 2 // Use IntelliSense to learn about possible attributes. 3 // Hover to view descriptions of existing attributes. 4 // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 5 "version": "0.2.0", 6 "configurations": [ 7 { 8 "name": "(gdb) 啟動", 9 "preLaunchTask": "C/C++: g++.exe build active file", 10 "type": "cppdbg", 11 "request": "launch", 12 "program": "${fileDirname}\\${fileBasenameNoExtension}.exe", 13 "args": [], 14 "stopAtEntry": false, 15 "cwd": "${workspaceFolder}", 16 "environment": [], 17 "externalConsole": false, 18 "MIMode": "gdb", 19 "miDebuggerPath": "E:\\C\\x86_64-8.1.0-release-win32-seh-rt_v6-rev0\\mingw64\\bin\\gdb.exe", 20 "setupCommands": [ 21 { 22 "description": "為 gdb 啟用整齊打印", 23 "text": "-enable-pretty-printing", 24 "ignoreFailures": true 25 } 26 ] 27 } 28 ] 29 }
以上 配置完成
以下測試
新建main.c文件,寫入以下內容,按F5運行。
1 #include <stdio.h> 2 #include <time.h> 3 4 #define BST (+1) 5 #define CCT (+8) 6 7 int main () 8 { 9 10 time_t rawtime; 11 struct tm *info; 12 13 time(&rawtime); 14 /* 獲取 GMT 時間 */ 15 info = gmtime(&rawtime ); 16 17 printf("當前的世界時鍾:\n"); 18 printf("倫敦:%2d:%02d\n", (info->tm_hour+BST)%24, info->tm_min); 19 printf("中國:%2d:%02d\n", (info->tm_hour+CCT)%24, info->tm_min); 20 21 return(0); 22 }
結果如下圖