1. 程式人生 > 實用技巧 >win10 64位下 VSCode 配置 C/C++ 開發環境

win10 64位下 VSCode 配置 C/C++ 開發環境

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 }

結果如下圖