这里使用Windows10作为基础环境,使用MinGW-x64作为编译器,使用VS Code作为文本编辑器。顺便提一句为什么不直接使用Visual Studio,因为它比较重量级,且包含了微软自己的C++内容,并不是很适合作为通用使用。
首先下载MinGW-x64,对应的网址https://sourceforge.net/projects/mingw-w64/files/,里面包含很多的版本,这里对应下载的文件如下:
下载到的是绿色包,直接解压到某个目录即可,对应的内容:
将bin路径添加到环境变量中:
这样在VS Code终端中就可以通过命令查看和使用g++和gdb等工具:
接下来是配置VS Code,这主要参考https://code.visualstudio.com/docs/cpp/config-mingw。首先需要下载C/C++插件:
之后点击VS Code的“终端->配置默认生成任务”来创建tasks.json,它会被放到当前代码目录的.vscode文件夹中,配置如下:
{
"version": "2.0.0",
"tasks": [
{
"type": "shell",
"label": "C/C++: g++.exe build active file",
"command": "D:\\Program Files\\mingw64\\bin\\g++.exe",
"args": ["-g", "${file}", "-o", "${fileDirname}\\${fileBasenameNoExtension}.exe"],
"options": {
"cwd": "${workspaceFolder}"
},
"problemMatcher": ["$gcc"],
"group": {
"kind": "build",
"isDefault": true
}
}
]
}
这里需要注意的是command这一栏,这里使用了前面下载到的g++工具。其它的参数也可以修改,不过这里不说明,可以在参考网站看到更详细的内容。
以上是编译配置,下面是DEBUG配置,这需要创建launch.json文件。点击“运行->添加配置”添加C++的DEBUG配置,内容如下:
{
"version": "0.2.0",
"configurations": [
{
"name": "g++.exe - Build and debug active file",
"type": "cppdbg",
"request": "launch",
"program": "${fileDirname}\\${fileBasenameNoExtension}.exe",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"miDebuggerPath": "D:\\Program Files\\mingw64\\bin\\gdb.exe",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
],
"preLaunchTask": "C/C++: g++.exe build active file"
}
]
}
这里也需要注意gdb.exe工具的路径。
这样基本的配置就可以了,另外还有一个配置是c_cpp_properties.json,它是C/C++的总体配置,内容如下:
{
"configurations": [
{
"name": "Win32",
"includePath": [
"${workspaceFolder}/**"
],
"defines": [
"_DEBUG",
"UNICODE",
"_UNICODE"
],
"windowsSdkVersion": "8.1",
"compilerPath": "D:/Program Files/mingw64/bin/g++.exe",
"cStandard": "c17",
"cppStandard": "c++17",
"intelliSenseMode": "windows-gcc-x64"
}
],
"version": 4
}
除了compilerPath和intelliSenseMode,其它暂时不变。
到这里配置完成。
一个代码示例:
#include
#include
#include
using namespace std;
int main()
{
vector msg = {"Hello", "C++", "World", "from", "VS Code"};
for (const string &word : msg)
{
cout << word << " ";
}
return 0;
}
使用“Ctrl+Shift+B”编译文件:
编译得到同名的文件(后缀从cpp换成了exe),执行即可。
如果要DEBUG,需要首先打断点:
然后按F5开始调试:
具体调试过程这里不赘述。
后续使用《C++ Primer》第5版作为C++学习的使用资料。书对应的源代码可以在https://www.informit.com/store/c-plus-plus-primer-9780321714114下载到,这里选择GCC的版本:
该源代码中存在makefile文件,可以直接通过make来编译。但是默认并没有make命令,MinGW-x64中其实是包含make工具的,但是名称是mingw32-make.exe:
使用该工具就可以通过makefile编译《C++ Primer》源代码,如下所示: