VSCode配置C++环境编译环境

前言:本文通过整合各博客内容形成一套自己尝试后可行的配置方法。

1、下载VScode及MinGW编译器

依照VSCode配置C/C++环境博客1章节——5.2章节设置。

2、设置编译C++代码的脚本:

依照VScode tasks.json和launch.json的设置,设置tasks.json和launch.json两文件。
本文重点介绍这两文件,附上各命令的解释:

// tasks.json文件的设置:
{
	"version": "2.0.0",
	"tasks": [
		{
			"label": "Build",  // 任务名字:Build  注意是大小写区分的,等会在launch中调用这个名字
			"type": "shell",  // 任务类型:shell命令
			"command": "g++.exe", // 任务执行的命令: g++
			//"command": "D:\\Programs\\mingw-w64\\mingw64\\bin\\g++.exe", // 任务执行的命令: g++
			"args": [  // 任务命令的参数:
				"-fdiagnostics-color=always",
				"'-Wall'",  // 编译后显示所有告警
                "'-std=c++17'",  //使用c++17标准编译
				"-g",  // 添加gdb调试信息
                "'${file}'", //当前文件名
                "-o", //对象名,不进行编译优化
				"${workspaceFolder}\\bin\\${fileBasenameNoExtension}.exe"
			],
			// 所以以上部分,就是在shell中执行(假设文件名为filename.cpp)g++ -g filename.cpp -o bin/filename.exe
			"options": {
				"cwd": "${workspaceFolder}"
			},
			"problemMatcher": [
                "$gcc" // 使用gcc捕获错误
			],
			"group": {
				"kind": "build",
				"isDefault": true
				// 任务分组,因为是tasks而不是task,意味着可以连着执行很多任务
                // 在build组的任务们,可以通过在Command Palette(F1) 输入run build task来运行
                // 当然,如果任务分组是test,你就可以用run test task来运行 
			},
			// "detail": "编译器: D:\\Programs\\mingw-w64\\mingw64\\bin\\g++.exe"
		}
	]
}
// launch.json
{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "test_code",  //  launch任务的名字:test_code
            "preLaunchTask": "Build",  //在launch之前运行的任务名:这个名字一定要跟tasks.json中的任务名字大小写一致
            "type": "cppdbg",  // 配置类型:只能为cppdbg
            "request": "launch",  // 请求配置类型,可以为launch(启动)或attach(附加)
            "program": "${workspaceFolder}/bin/${fileBasenameNoExtension}.exe",  // 任务程序的路径名称:需要运行的是当前打开文件的目录中,名字和当前文件相同,但扩展名为exe的程序
            "args": [],  // 程序传递的参数:一般设为空即可
            "stopAtEntry": false,  // 程序在入口是否停止:选为true则会在打开控制台后停滞,暂时不执行程序
            "cwd": "${workspaceFolder}",  // 调试程序时的工作目录:一般为${workspaceFolder},即代码所在目录
            "environment": [],
            "externalConsole": false,  // 输出窗显示形式:true显示外置的控制台窗口,false显示内置终端
            "MIMode": "gdb",
            //"miDebuggerPath": "D:/Programs/mingw-w64/mingw64/bin/gdb.exe",  // miDebugger的路径:和MinGW的路径对应
            "miDebuggerPath": "gdb.exe",  // miDebugger的路径:和MinGW的路径对应
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ]
        }]
}

3、扩展:编译多个CPP文件:

以下这部分是扩展的,以上内容已实现对于单个cpp文件的编译,满足日常调试。
以下为设置一套工程,只要理解了第二小结的内容,就可以读懂下面这篇文章。
参考:vscode一键配置C/C++多个C及CPP文件编译与tasks.json和launch.json原理,我还没尝试,初步看了是可行的。

额外参考资料:
1、cmake中加入gdb调试

你可能感兴趣的:(编译链接,c++)