VScode的C++环境配置方法
近期想在本地配置一个在VScode上的C++编程环境,尝试了不同配置方式,有些虽然可以编译成功生成'.exe'文件,但并不支持debug。不能debug这点难以接受,于是尝试新的配置,实现完整的编译功能。
step1. 安装VScode
这一步非常简单,不赘述。
值得一提的是需要安装c/c++插件,在插件栏搜索安装即可。
step2. 安装C++编译器mingw
编译工具我们选用gcc(全称GNU Compiler Collection
意思是GNU编译器套件),不过不是原版的gcc,而是它在Windows下的特制版MinGW (全称Minimalist
GNU on Windows)。它实际上是将GCC 移植到了 Windows 平台下,并且包含了
Win32API ,因此可以将源代码编译为可在 Windows
中运行的可执行程序。而且还可以使用一些 Windows
不具备的,Linux平台下的开发工具。MinGW又分为MinGW-w64 与 MinGW
,区别在于 MinGW 只能编译生成32位可执行程序,而 MinGW-w64 则可以编译生成
64位 或 32位 可执行程序。MinGW 现已被 MinGW-w64 所取代,且 MinGW
也已停止了更新。因此,我们最终下载安装的是MinGW-w64
下载地址:https://sourceforge.net/projects/mingw-w64/files/
打开网址后,选择 x86_64-win32-seh 并下载
下载好了后把文件解压到C:\Program Files
文件夹中(也可以更换路径,但不要有中文)
添加路径C:\Program File\mingw64\bin
(具体路径根据安装路径会有变化)到系统环境变量。
添加好之后,在cmd
窗口输入gcc --version
,可以看到版本信息说明安装成功。
step3. 文件配置
在一个c++项目中,根目录包含两个文件夹
.vscode
:存放编译文件。
codes
:存放编写的代码,名称可随意更改。
在.vscode
文件夹中,需要添加两.json
文件:
tasks.json
文件内容如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 { "version": "0.1.0", "command": "g++", "args": [ "-g", "${file}", "-o", "${file}.exe" ], // 编译命令参数 "problemMatcher": { "owner": "cpp", "fileLocation": [ "relative", "${workspaceRoot}" ], "pattern": { "regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$", "file": 1, "line": 2, "column": 3, "severity": 4, "message": 5 } } }
launch.json:一定要注意miDebuggerPath与安装路径保持一致,文件内容如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 { "version": "0.2.0", "configurations": [ { "name": "C++ Launch (GDB)", // 配置名称,将会在启动配置的下拉菜单中显示 "type": "cppdbg", // 配置类型,这里只能为cppdbg "request": "launch", // 请求配置类型,可以为launch(启动)或attach(附加) "targetArchitecture": "x86", // 生成目标架构,一般为x86或x64,可以为x86, arm, arm64, mips, x64, amd64, x86_64 "program": "${file}.exe", // 将要进行调试的程序的路径 "miDebuggerPath": "c:\\Program Files (x86)\\mingw64\\bin\\gdb.exe", // miDebugger的路径,注意这里要与MinGw的路径对应 "args": [ "blackkitty", "1221", "# #" ], // 程序调试时传递给程序的命令行参数,一般设为空即可 "stopAtEntry": false, // 设为true时程序将暂停在程序入口处,一般设置为false "cwd": "${workspaceRoot}", // 调试程序时的工作目录,一般为${workspaceRoot}即代码所在目录 "externalConsole": true, // 调试时是否显示控制台窗口,一般设置为true显示控制台 "preLaunchTask": "g++" // 调试会话开始前执行的任务,一般为编译程序,c++为g++, c为gcc } ] }
随后,在codes
文件夹中创建一个.cpp
文件即可验证环境了。
main.cpp 样例程序如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 #include <iostream> #include <unordered_map> using namespace std; class Solution { private: unordered_map<char, int> symbolValues = { {'I', 1}, {'V', 5}, {'X', 10}, {'L', 50}, {'C', 100}, {'D', 500}, {'M', 1000}, }; public: int romanToInt(string s) { int ans = 0; int n = s.length(); for (int i = 0; i < n; ++i) { int value = symbolValues[s[i]]; if (i < n - 1 && value < symbolValues[s[i + 1]]) { ans -= value; } else { ans += value; } } return ans; } }; int main() { Solution S; // char a='IX'; cout << S.romanToInt("IX"); system("pause"); return 0; }
可以设置断点进行debug,程序暂停的时候也可以在debug
console窗口输入新代码进行测试。
step4. 快捷键说明
ref:
https://zhuanlan.zhihu.com/p/147366852
https://www.cnblogs.com/baihualiaoluan/p/10661669.html
Pcon
2022年04月06日