1. 安装MinGW
1.1. 下载MinGW
下载地址:https://sourceforge.net/projects/mingw/
下载一个名为mingw-get-setup.exe的安装文件。
1.2 安装下载器
运行刚刚下载的安装程序,看到如下界面:
点击“Install”,进入下面这个界面:
选择安装路径
默认安装路径为C:\MinGW,我习惯安装在D盘下,点击“Change”修改路径如下:
点"Continue"继续。
安装过程
安装完成后,桌面出现这样一个图标。
安装器
这只是个安装器,需要在线下载真正的安装内容,所以速度不会快。
1.3. 选择安装组件
运行安装程序,有的版本在安装之后会自动运行,看到下面这个界面:
选择安装组件
选择需要安装的组件,右键选择“Mark for Installation”,之后选择"Installation -> Apply Changes”。
之后点击菜单栏中的“Installation”进行安装。
注意:在安装程序中,复选框为绿色表示已经安装的项目,复选框为白色表示没有安装的项目。因此如果需要删除,只需要在绿色复选框右键后选择“Mark for removal”即可。
1.5 确认安装成功
安装执行完成后,在D:\MinGW\bin目录(我们之前配置好的路径)下进行查看。如果找到下面这三个可执行文件,说明安装成功。
1.6 设置MinGW环境变量
鼠标右键“我的电脑”->“属性”,选择“高级”选项卡下的“环境变量”,在系统变量里点“新建”,之后填写MinGW的安装路径,如下:
MinGW路径
之后找到Path,在最前面添加下面这段声明,之后点击确定。安装完成后,在MinGW\bin的目录下,会有一个名为gcc.exe的可执行文件。看到这个说明安装成功。
%MinGW%\bin;
1.7 查看GCC版本信息
打开命令行,输入gcc -v查看编译器版本。如下图:
1.8 MinGW使用
1.8.1 测试编译
测试文件test.c,代码如下
#include <stdio.h>
void main() {
printf("Hello World!");
}
1.8.2 编译test
编译命令如下:
gcc test.c -o test
输出结果为:test.exe
1.8.3 执行
输入test回车,结果如下:
结果
2. 安装cpptools插件
打开VS Code,快捷键ctrl+shift+p呼出命令框,输入以下命令
ext install cpptools
稍等片刻会出现插件安装列表,如图:
点击箭头所指处的按钮安装插件,安装过程可能会有些慢耐心等待 ,安装完成后vscode会提示你重启vscode。
3. 配置调试环境
-
文件–>打开文件夹,设置项目路径
-
新建一个.vscode文件夹
-
创建一个launch.json启动配置文件
{
"version": "0.2.0",
"configurations": [
{
"name": "C++ Launch (GDB)",
"type": "cppdbg",
"request": "launch",
"targetArchitecture": "x86",
"program": "${workspaceRoot}\\${fileBasename}.exe",
"miDebuggerPath":"C:\\mingw-w64\\bin\\gdb.exe",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceRoot}",
"externalConsole": true,
"preLaunchTask": "g++"
}
]
}
- 创建一个tasks.json的配置文件
{
"version": "0.1.0",
"command": "g++",
"args": ["-g","-std=c++11","${file}","-o","${workspaceRoot}\\${fileBasename}.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
}
}
}
- 创建一个c_cpp_properties.json文件,注意不同的版本的MINGW路径可能有些许不同
{
"configurations": [
{
"name": "Win32",
"includePath": [
"${workspaceRoot}",
"C:/mingw-w64/lib/gcc/x86_64-w64-mingw32/7.2.0/include/c++",
"C:/mingw-w64/lib/gcc/x86_64-w64-mingw32/7.2.0/include/c++/x86_64-w64-mingw32",
"C:/mingw-w64/lib/gcc/x86_64-w64-mingw32/7.2.0/include/c++/backward",
"C:/mingw-w64/lib/gcc/x86_64-w64-mingw32/7.2.0/include",
"C:/mingw-w64/lib/gcc/x86_64-w64-mingw32/7.2.0/include/c++/tr1",
"C:/mingw-w64/x86_64-w64-mingw32/include"
],
"defines": [
"_DEBUG",
"UNICODE",
"__GNUC__=6",
"__cdecl=__attribute__((__cdecl__))"
],
"intelliSenseMode": "msvc-x64",
"browse": {
"path": [
"${workspaceRoot}",
"C:/mingw-w64/lib/gcc/x86_64-w64-mingw32/7.2.0/include/c++",
"C:/mingw-w64/lib/gcc/x86_64-w64-mingw32/7.2.0/include/c++/x86_64-w64-mingw32",
"C:/mingw-w64/lib/gcc/x86_64-w64-mingw32/7.2.0/include/c++/backward",
"C:/mingw-w64/lib/gcc/x86_64-w64-mingw32/7.2.0/include",
"C:/mingw-w64/lib/gcc/x86_64-w64-mingw32/7.2.0/include/c++/tr1",
"C:/mingw-w64/x86_64-w64-mingw32/include"
]
},
"limitSymbolsToIncludedHeaders": true,
"databaseFilename": ""
}
],
"version": 3
}
- 新建一个test.cpp文件,并点击左侧的调试按钮
#include <iostream>
using namespace std;
int main()
{
cout<<"Hello World!"<<endl;
return 0;
}
运行结果
为了看到输出效果,我们可以在test.cpp的最后一行上设置一个断点。运行效果如下: