C / C++ Windows - VScode、MinGW 与 make
VSCode 及 MinGW 安装
-
VSCode 安装
- VSCode 官网
- 下载后下一步下一步安装;
- 安装VSCode C/C++ 插件;
-
MinGW 安装
-
下载 MinGW-w64 - for 32 and 64 bit Windows
- DWARF:一种带调试信息的包, 所以比一般的包尺寸大,仅支持32位系统。dwarf 的性能要优于 sjlj。
- SJLJ:跨平台,支持32、64位系统,稳定性好。缺点是:运行速度稍慢,GCC不支持。sjlj支持32、64两种编译,需加-m32或-m64参数。
- SEH:性能较好,调用系统机制处理异常,支持32,64位系统,缺点是:GCC不支持。
- posix: 开发 Linux、Unix、Mac OS 等操作系统下的程序,启用了C++ 11 多线程特性。
- win32: 开发 Windows 程序,未启用C++ 11 多线程特性
-
解压后将MinGW的bin文件夹添加到系统的PATH环境变量;
-
环境配置
- 配置编译器 c_cpp_properties.json文件
-
配置项目属性及编译器
-
打开VScode,首先新建一个放文件的文件夹,并在左侧打开,然后使用Ctrl+Shift+P调出命令面板,按以下过程操作。
-
左侧文件夹下就会出现一个.vscode文件夹,其中有一个c_cpp_properties.json文件,到这里编译器配置结束;
其中,c_cpp_properties.json文件内容:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22{
"configurations": [
{
"name": "Win32",
"includePath": [
"${workspaceFolder}/**",
"${vcpkgRoot}/x64-windows/include"
],
"defines": [
"_DEBUG",
"UNICODE",
"_UNICODE"
],
"windowsSdkVersion": "10.0.17763.0",
"compilerPath": "C:/MinGW64/mingw64/bin/g++.exe",
"cStandard": "c17",
"cppStandard": "c++17",
"intelliSenseMode": "windows-gcc-x64"
}
],
"version": 4
} -
相关参数
参数名 功能 env 用户自定义变量 configuration 定义编译器、头文件、C\C++标准 version c_cpp_properties.json文件版本,不可修改。
-
-
配置构建任务 tasks.json 文件
-
新建cpp文件如下:
1
2
3
4
5
6#include<iostream>
int main()
{
std::cout<<"hello_vscode"<<std::endl;
return 0;
} -
配置tasks.json
目的是是创建一个tasks.json文件来告诉VSCode如何构建(编译)程序(即就是调用g++编译器基于源代码创建可执行文件exe)。配置过程如下:首先Ctrl+Shift+P调出命令面板 -
这样,.vscode文件夹下就会出现一个名为tasks.json的配置文件。构建任务配置结束,这里你可以自己选择生成的exe文件路径。
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
26
27{
"version": "2.0.0",
"tasks": [
{
"type": "cppbuild",
"label": "C/C++: g++.exe 生成活动文件",
"command": "C:/MinGW64/mingw64/bin/g++.exe",
"args": [
"-g",
"${file}",
"-o",
"${fileDirname}\\${fileBasenameNoExtension}.exe"
],
"options": {
"cwd": "C:/MinGW64/mingw64/bin"
},
"problemMatcher": [
"$gcc"
],
"group": {
"kind": "build",
"isDefault": true
},
"detail": "编译器: C:/MinGW64/mingw64/bin/g++.exe"
}
]
} -
相关参数
参数名 功能 type 编译环境类型 label 当前任务名,可自行设置 args 编译选项,包括所的编译文件、保存编译文件的目录等 command 编译器所在的绝对路径 options-cwd 编译器所在目录
-
-
配置调试设置 ** launch.json文件 **
-
点击"运行->启动调试"用来在.vscode文件夹中产生一个launch.json文件,用来配置调试的相关信息:
-
这时,.cpp文件会自动被编译生成.exe文件并运行,同时在.vscode文件夹下生成一个launch.json文件。到这里就算是配置结束了。
launch.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
26
27
28
29{
// 使用 IntelliSense 了解相关属性。
// 悬停以查看现有属性的描述。
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "g++.exe - 生成和调试活动文件",
"type": "cppdbg",
"request": "launch",
"program": "${fileDirname}\\${fileBasenameNoExtension}.exe",
"args": [],
"stopAtEntry": false,
"cwd": "E:/MinGW64/mingw64/bin",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"miDebuggerPath": "E:\\MinGW64\\mingw64\\bin\\gdb.exe",
"setupCommands": [
{
"description": "为 gdb 启用整齐打印",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
],
"preLaunchTask": "C/C++: g++.exe 生成活动文件"
}
]
} -
相关参数
参数名 功能 name 调试任务名称 type 调试环境的具体类型 node、java、cppdbg 等等 program 被调试可执行文件的绝对路径 args 程序调试时,传递给程序命令行的参数 stopAtEntry stopAtEntry cwd 调试程序时的工作目录,一般为工作空间 externalConsole 是否在控制台显示 MIMode 指示MIDebugEngine将连接的控制台调试器。允许的值是 “gdb”“ldb”。 miDebuggerPath 到MI调试器(如gdb)的路径。当未指定时,它将首先搜索调试器的路径。 -
最终的效果
-
-