Windows 10 下VS Code配置简易C++开发环境

  1. 在安装完Mingw-w64和VS Code之后,将Mingw-w64的bin目录添加到系统变量Path中;
  2. 打开VS code后找到左则工具条上的“扩展”按钮(四个小方块那个)点击后进入扩展应用商店,在搜索框中搜索"C/C++"和"code runner"并安装它们,其他的扩展看自己需要安装(推荐安装中文语言包);
  1. 新建一个工作目录(为了避免不必要的麻烦,路径最好不要包含中文和空格);通过VS code的"文件"菜单打开这个目录;打开之后在目录名(我的目录名是"CHAPTER_000_3")后边有四个图标,第一个图标是新建文件;点击之后在下方输入文件名(我的文件名是"main.cpp")之后回车创建文件;
  1. 国际惯例,来一段hello world;
#include <iostream>

int main()
{
    std::string msg = "hello, world";//据说世界上第一个hello world程序打印出来就是这个样子;全部小写,两个单词之间用逗号和空格分隔,结尾没有标点符号。
    std::cout << msg << std::endl;
    return 0;
}
  1. 要在VS code中运行上面这段代码也没有那么容易,首先让VS code自动为我们创建c_cpp_properties.json、launch.json、settings.json、tasks.json这四个文件;

第一步:创建tasks.json文件,在菜单条中点击<终端(T)>选择最后一项<配置默认生成任务...>之后<运行>框会弹出下拉列表,选择<C/C++:g++.exe build active file>,VS code会自动在工作文件夹下创建.vscode目录,并在该目录下创建tasks.json文件;

//tasks.json 本行不用复制
{
	"version": "2.0.0",
	"tasks": [
		{
			"type": "cppbuild",
			"label": "C/C++: g++.exe build active file",
			"command": "C:\\TDM-GCC-64\\bin\\g++.exe",
			"args": [
				"-g",
				"${file}",
				"-o",
				"${fileDirname}\\${fileBasenameNoExtension}.exe"
			],
			"options": {
				"cwd": "C:\\TDM-GCC-64\\bin"
			},
			"problemMatcher": [
				"$gcc"
			],
			"group": {
				"kind": "build",
				"isDefault": true
			},
			"detail": "compiler: C:\\TDM-GCC-64\\bin\\g++.exe"
		}
	]
}

第二步:创建c_cpp_properties.json文件,按下ctrl+shift+P,在<运行>框输入"C/C++",在下拉列表中找到<C/C++:编辑配置(json)>点击开始编辑c_cpp_properties.json文件;

//c_cpp_properties.json 本行不用复制
{
    "configurations": [
        {
            "name": "Win32",
            "includePath": [
                "${workspaceFolder}\\**"
            ],
            "defines": [
                "_DEBUG",
                "UNICODE",
                "_UNICODE"
            ],
            "compilerPath": "C:\\TDM-GCC-64\\bin\\g++.exe", //g++所在的目录
            "cStandard": "c17", //使用C17标准
            "cppStandard": "c++17", //使用C++17标准
            "intelliSenseMode": "gcc-x64" //因为使用GCC编译Windows程序所以IntelliSense 设置为gcc-x64
        }
    ],
    "version": 4
}

第三步:创建launch.json文件,在菜单条中选择<运行(R)>点击<添加配置>,在<运行>框弹出的下拉列表中选择<C++(GDB/LLDB)>,之后选择<g++.exe - 生成和调试活动文件>(不知道为什么出现两个g++选项,反正我选择第一个);

这里不知道什么原因有时候生成的launch.json文件会有问题。如果你操作后生成的内容没有配置好"program"、"miDebuggerPath" 和 "preLaunchTask的话,就复制我的文件,把gdb路径替换成你的就行了。还有一个注意事项就是 "preLaunchTask"的值必须与tasks.json文件中"label"的值保持一样,否则无法调试;

//launch.json 本行不用复制
{
    "version": "0.2.0",
    "configurations": [
    
        {
            "name": "g++.exe - 生成和调试活动文件",
            "type": "cppdbg",
            "request": "launch",
            "program": "${fileDirname}\\${fileBasenameNoExtension}.exe",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "miDebuggerPath": "C:\\TDM-GCC-64\\bin\\gdb.exe",
            "setupCommands": [
                {
                    "description": "为 gdb 启用整齐打印",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ],
            "preLaunchTask": "C/C++: g++.exe build active file"
        }
    ]
}

第四步:创建settings.json文件,这里要创建的是对应当前工作目录的settings.json文件;按下ctrl+shift+P调出<运行>框,输入"settings.json"选择"首选项: 打开工作区设置(JSON)"开始编辑settings.json文件;

删除默认生成的内容,将下面的配置文件内容复制进去;

//settings.json 本行不用复制
{
    "code-runner.runInTerminal": true,//让code runner在Power Shell中运行;
    "code-runner.executorMap": {
        //此处有很多项,我只保留了C和C++的;
        "c": "cd $dir && gcc $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt",
        "cpp": "cd $dir && g++ $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt"
    }
}
  1. 运行一下前面敲的代码,在代码编辑区右键鼠标,点击<Run Code>,如果在下面的命令行中看到"hello, world"说明编译器已经配置成功;
  1. 最后一步,测试一下gdb是否正确配置,在左则工具条中点击<运行>按钮(有甲虫的那个),在代码编辑区设置一个断点(在行号的左边单击,会出现一个小红点),最后点击绿色的三角进行调试;如果在变量栏里看到变量的值,在主窗体的标题下面看到调试工具条说明配置正解了。

TDM-GCC9.2.0目前不支持通配符编译,所以还是去mingw-w64.org下载Mingw-W64-builds