簡述一下步驟哈:
- 下載VsCode(這點大家都會哈)
- 下載MingG64(C/C++編譯器【gcc】),配置環境變量
- 在VsCode配置一下C/C++運行時環境
- 測試運行
1、準備MingG64
VsCode 本身是沒有C/C++編譯的,這里我們自己去下載一個MingG64 就可以了。
下載地址頁面:MingG64
在這個頁面選擇你想要的MingG64版本進行下載,能玩新的就玩新的哈,不然沒勁哈。
我們選擇的是這個x86_64-posix-seh
,下載下來就是個7z的壓縮包哈,無需安裝的。
?
下載完,解壓到自己想要放置的目錄中去。
目錄結構:
2、配置MingG64環境變量
這個蠻簡單的哈。
先復制我們之前MingG64放置的路徑位置,一直到bin路徑哈。
如我的就是:D:\computeSoft\cpp\mingw64\bin
鼠標右鍵點擊我的電腦–>點擊 高級系統配置–>點擊 環境變量點擊新建將你的復制好的路徑粘貼進去即可。
測試是否安裝好
我們按下 win+r ,輸入cmd,來命令行,輸入gcc --version
進行測試。彈出這樣的就是配置成功了。
3、VsCode配置C/C++開發環境
3.1、安裝C/C++擴展
創建一個空文件夾,確保這個文件夾所在的文件路徑沒有中文字符哈,不然會報錯的。
然后我們用VsCode打開。
安裝一下這個哈。
安裝完成之后,直接在VsCode中按 ctrl+shift+p
快捷鍵
出現以下界面: 直接搜索C/C++即可,我是因為已經搜過了。
搜到后點進去:這里附屬一張中文翻譯版本截圖
3.2、修改生成的Json配置文件
用VsCode 打開這個空文件夾,新建一個test.cpp文件哈。
#include <stdio.h>
#include <windows.h>
int main()
{printf("Hello\n");system("pause"); // 保持窗口不被關閉哈 這個固定的方法我還沒找到 只能先這么寫了return 0;
}
打開launch.json文件,再次點擊run--> add Configuration
之后我直接放圖哈。點擊運行–>以非調試模式運行。
點擊后,彈出如下彈窗選項:
? ? ? ? ? ? ? ??
附屬上其他的人VsCode會默認生成一個
.vscode
文件夾:
平常在文章中看到的要編輯的json文件也就這兩個了。
默認生成的文件如下:
c_cpp_properties.json
{"configurations": [{"name": "Win32","includePath": ["${workspaceFolder}/**"],"defines": ["_DEBUG","UNICODE","_UNICODE"],"compilerPath": "D:\\computeSoft\\cpp\\mingw64\\bin\\gcc.exe","cStandard": "c17","cppStandard": "gnu++14","intelliSenseMode": "windows-gcc-x64"}],"version": 4
}
task.json
{"tasks": [{"type": "cppbuild","label": "C/C++: gcc.exe build active file",//C語言就改成gcc.exe,C++就改成g++.exe"command": "D:\\computeSoft\\cpp\\mingw64\\bin\\gcc.exe","args": ["-fdiagnostics-color=always","-g","${file}","-o","${fileDirname}\\${fileBasenameNoExtension}.exe"],"options": {"cwd": "${fileDirname}"},"problemMatcher": ["$gcc"],"group": {"kind": "build","isDefault": true},"detail": "Task generated by Debugger."}],"version": "2.0.0"
}
我們需要添加或修改的地方:
第一個,將launch.json
文件中第16行的externalConsole
屬性修改為true,這樣就能彈出窗口第二個:在
task.json
文件中的tasks
屬性下的args
中增加兩行屬性:
"-fexec-charset=GBK", // 處理mingw中文編碼問題
"-finput-charset=UTF-8",// 處理mingw中文編碼問題?
?4、測試運行,直接按ctrl+F5
也能運行
#include <stdio.h>
#include <windows.h>
int main()
{printf("Hello World!\n");printf("很高興,能夠遇到你! \n");system("pause");return 0;
}
擴展:g++和gcc的區別
g++和gcc的區別:
1、對于不同后綴的文件當作程序不同。c后綴的文件,gcc把它當做是C程序;g++當做是C++程序;對于.cpp后綴的文件,gcc和g++都會當做c++程序。gcc可以判斷出目標程序所使用編程語言的類別,會把xx.c文件當做C語言編譯,把xx.cpp文件當做C++語言編譯。而g++只把xx.c和xx.cpp一律當做C++語言來編譯
2、編譯階段調用不同,g++會調用gcc。
3、連接階段方式不同,通常會用g++來完成,這是因為gcc命令不能自動和c++程序使用的庫連接。
4、在編譯C++文件時,g++會自動連接一些標準庫或基礎庫,而gcc不會,當正在編譯的C++代碼文件依賴STL標準庫時候,為了使用STL,gcc命令需要增加參數-lstdc++。因此雖然gcc和g++都可以編譯C++ 語言,但是使用g++會更方便一些。
gcc/g++在執行編譯工作的時候,總共需要4步:第一步預處理,生成.i的文件預處理器cpp。第二步將預處理后的文件轉換成匯編語言,生成文件.s編譯器egcs。第三步有匯編變為目標代碼(機器代碼)生成.o的文件匯編器as。第四步連接目標代碼,生成可執行程序鏈接器ld。
擴展: VSCode的Json配置
tasks.json
tasks.json 文件定義了 VSCode 中的構建任務。你可以配置 VSCode 在構建(編譯)你的項目時應執行的操作。例如,使用 g++ 編譯器編譯 C++ 代碼。
點擊左上角...:終端:配置任務
點擊:C/C++:g++.exe 生成活動文件
在.vscode文件夾自動創建了tasks.json,下面包含了完整解釋:
{// 配置文件版本"version": "2.0.0","tasks": [{// 任務名稱"label": "C/C++: 使用 g++ 生成可執行文件",// 任務類型"type": "cppbuild",// 編譯器路徑"command": "g++.exe",// 編譯參數"args": ["-fdiagnostics-color=always", // 彩色輸出"-g", // 含調試信息"${file}","-o","${fileDirname}\\${fileBasenameNoExtension}.exe"],// 當前工作目錄"options": {"cwd": "${fileDirname}"},// 錯誤匹配器"problemMatcher": ["$gcc"],// 構建任務組,設為默認"group": {"kind": "build","isDefault": true},// 附加信息"detail": "由調試器自動生成的 C++ 編譯任務"}]
}
launch.json
launch.json 文件定義了調試配置。你可以配置 VSCode 如何啟動和調試你的應用程序,包括設置調試器路徑、啟動參數等。
點擊左上角...:運行:添加配置
點擊:C/C++(GDB/LLDB)
點擊添加配置:{}C/C++: (gdb) Windows 上的 Bash 啟動
在.vscode文件夾自動創建了launch.json,下面包含了完整解釋:
?
{"version": "0.2.0","configurations": [{"name": "C/C++: 使用 gdb 啟動調試","type": "cppdbg","request": "launch",// 設置為當前 .cpp 文件對應的可執行文件"program": "${fileDirname}\\${fileBasenameNoExtension}.exe","args": [],"stopAtEntry": false,"cwd": "${fileDirname}","environment": [],"externalConsole": false,"MIMode": "gdb",// 推薦設置為 MinGW 的 gdb 完整路徑(自動也可以)"miDebuggerPath": "gdb.exe",// 啟動調試器時運行的初始化命令"setupCommands": [{"description": "啟用 gdb 整齊打印","text": "-enable-pretty-printing","ignoreFailures": true},{"description": "設置反匯編風格為 Intel","text": "-gdb-set disassembly-flavor intel","ignoreFailures": true}],// 關鍵項:調試前自動構建,確保是最新的可執行文件"preLaunchTask": "C/C++: 使用 g++ 生成可執行文件"}]
}
c_cpp_properties.json
c_cpp_properties.json是一個配置文件,用于指定C/C++項目的編譯器和頭文件路徑等相關設置。
按Ctrl+Shift+P調出命令面板
輸入C/C++: Edit Configurations (UI)并選擇它
使用此編輯器編輯在基礎c_cpp_properties.json文件中定義的 IntelliSense 設置。在此編輯器中所做的更改僅適用于所選的配置。要一次編輯多個配置,請轉到 c_cpp_properties.json
在.vscode文件夾自動創建了c_cpp_properties.json,下面包含了完整解釋:?
{// 配置數組// 包含所有代碼配置的數組。"configurations": [{// 配置名稱// 此配置的名稱為“Win32”。"name": "Win32",// 包含路徑// 編譯時要包含的路徑,可以使用通配符。"includePath": ["${workspaceFolder}/**"],// 預處理器定義// 編譯時定義的預處理器宏。"defines": ["_DEBUG", // 調試模式"UNICODE", // 使用 Unicode 字符集"_UNICODE" // 使用 Unicode 字符集],// 編譯器路徑// 指定編譯器的路徑。"compilerPath": "D:\\CPPcode\\MinGW\\bin\\gcc.exe",// C標準// 指定要使用的C語言標準。"cStandard": "c17",// C++標準// 指定要使用的C++語言標準。"cppStandard": "gnu++17",// IntelliSense 模式// 指定IntelliSense的模式。"intelliSenseMode": "windows-gcc-x64"}],// 配置文件版本// 此配置文件的版本。"version": 4
}
問題:如果碰到:
launch: program 'D:\projectCpp\cProject\demoCPP01' does not exist這類報錯的,按照如下修改
1、確認編譯的是C還是C++
如果是C,就將task.json中的command中的改成gcc.exe
如果是C++,這里就改成g++.exe
launch.json如果非需要,可以不配置,否則不會重新編譯,感覺launch.json這個文件會在task.json之前執行,但是program這個參數表示可執行的文件,還是必填,此時文件還未編譯就找不到文件
參考:
1、VsCode 配置 C/C++ 開發環境,真的很簡單-騰訊云開發者社區-騰訊云
2、【操作與配置】VSCode配置C/C++及遠程開發_vscode c++遠程調試-CSDN博客
3、保姆級教程:C++/C 編程運行環境配置,C++/C 運行環境搭建_c++環境配置-CSDN博客