Txing

欢迎来到 | 伽蓝之堂

0%

VScode的C++环境配置方法

VScode的C++环境配置方法

近期想在本地配置一个在VScode上的C++编程环境,尝试了不同配置方式,有些虽然可以编译成功生成'.exe'文件,但并不支持debug。不能debug这点难以接受,于是尝试新的配置,实现完整的编译功能。

step1. 安装VScode

这一步非常简单,不赘述。

值得一提的是需要安装c/c++插件,在插件栏搜索安装即可。

step2. 安装C++编译器mingw

  1. 编译工具我们选用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文件夹中(也可以更换路径,但不要有中文)

  2. 添加路径C:\Program File\mingw64\bin(具体路径根据安装路径会有变化)到系统环境变量。

    添加好之后,在cmd窗口输入gcc --version,可以看到版本信息说明安装成功。

step3. 文件配置

在一个c++项目中,根目录包含两个文件夹

  • .vscode:存放编译文件。
  • codes:存放编写的代码,名称可随意更改。

.vscode文件夹中,需要添加两.json文件:

  • launch.json
  • tasks.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. 快捷键说明

  • ctrl + F4:运行 .exe

  • shift + ctrl + b:编译程序生成 .exe

  • F5:debug

ref:

https://zhuanlan.zhihu.com/p/147366852

https://www.cnblogs.com/baihualiaoluan/p/10661669.html

Pcon

2022年04月06日