vs code艰难配置c++的cmake调试(launch.json与task.json写法)

前言

vscode编辑器很牛逼,但是对小白来说用cmake配置完整版调试c++有很大难度。当然我也是小白,摸索了老长时间,整理如下:

流程

1.安装mingw和cmake,vscode等教程就略过了,网上乌央乌央很多;

2.安装vscode插件:c/c++, CMake, CMake Tools

3.接着就可以新建project目录,快乐写代码,写完保存,

4.开始进入正题:在project目录下新建CMakeLists.txt

project(MYPROJECT)

# 方法一:将*.cpp全放进SOURCES
set( SOURCES
     ./main.cpp
     ./swap.cpp

)

# 方法二:将*.cpp全放进SOURCES
# aux_source_directory(. SOURCES)   

add_executable(main ${SOURCES})

# add_executable(main main.cpp swap.cpp)

5.快捷键ctrl+shift+p搜索cmake:configure,点击选择gcc8.1那个选项,然后就会生成一个build目录;

6.在*.cpp的文件界面,选择调试,创建launch.json,选择调试器C++(GDB/LLDB),

 接着添加配置

 修改launch.json

{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "(gdb) 启动",
            "type": "cppdbg",
            "request": "launch",
            "program": "${workspaceFolder}/build/main.exe",     // gdb执行的调试文件
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",   //文件所在的文件夹路径,也即/home/Coding/Test/.vscode
            "environment": [],
            "externalConsole": true,   // 调试时是否显示控制台窗口,一般设置为true显示控制台
            "MIMode": "gdb",
            "miDebuggerPath": "gdb",   // 改为gdb
            "setupCommands": [
                {
                    "description": "为 gdb 启用整齐打印",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                },
                {
                    "description":  "将反汇编风格设置为 Intel",
                    "text": "-gdb-set disassembly-flavor intel",
                    "ignoreFailures": true
                }
            ],
            // 此处配置为debug前需要执行的任务,是task.json里面的"label"
            "preLaunchTask": "Build"
        },
    ]
}

 7.终端->配置默认任务,选择“c/c++: g++.exe生成活动文件”, 

修改task.json如下:

{
	"version": "2.0.0",
	"options": {
		"cwd": "${workspaceFolder}/build"
	},
	"tasks": [
		{
			"type": "shell",
			"label": "cmake",
			"command": "cmake",
			"args": [
				".."
			]
		},
		{
			"label": "make",
			"group": {
				"kind": "build",
				"isDefault": true
			},
			"command": "mingw32-make.exe",
			"args": [

			]
		},
		{
			"label": "Build",    // launch.json里面的preLaunchTask
			"dependsOn":[
				"cmake",
				"make"
			]
		}
	]
}

总结:

调试是按照launch.json文件进行的,launch.json里面的配置项“preLaunchTask”指定按照task.json里面的配置进行。task.json配置了用cmake .. 和 mingw32-make来生成可调式文件

调试快捷键:

F5  开始调试
F10 步进

<think>好的,用户的问题是想要在VSCodelaunch.json文件中添加C/C++配置,使用g++.exe来构建和调试活动文件。他们遇到了缺少相应配置的问题。我需要根据提供的引用内容来整理出正确的配置步骤。 首先,根据引用[2],用户需要配置c_cpp_properties.json,确保编译器路径正确。这里需要检查compilerPath是否指向正确的g++.exe路径,比如D:\\mingw64\\bin\\g++.exe。这一步是关键,否则后续构建可能失败。 接下来,引用[3]提到需要配置tasks.jsonlaunch.jsontasks.json负责编译任务,launch.json负责调试配置。用户需要先创建或修改tasks.json,确保在编译时使用g++并添加-g选项生成调试信息。例如,tasks.json中的args应该包含-g,这样生成的可执行文件才能被调试。 然后是launch.json配置。需要设置preLaunchTask为编译任务的名称(比如“C/C++: g++.exe build active file”),这样在启动调试前会自动执行编译。program参数需要指向生成的可执行文件,比如${fileDirname}\\${fileBasenameNoExtension}.exe。另外,miDebuggerPath要指向正确的gdb路径,如D:\\mingw64\\bin\\gdb.exe。 用户可能遇到的问题包括路径错误或者配置错误。需要提醒他们检查g++和gdb的安装路径是否正确,以及tasks.jsonlaunch.json中的任务名称是否一致。此外,如果使用CMake,引用[3]提到需要设置CMAKE_BUILD_TYPE为Debug,确保生成调试信息。 最后,确保所有配置文件的语法正确,尤其是逗号和括号的闭合。建议用户使用VSCode的自动补全功能来减少错误。测试配置时,可以先运行生成任务,再启动调试,观察是否有错误提示,逐步排查问题。</think>### 分步解决方案 #### 步骤1:确认编译器路径 1. 打开VSCode的C/C++配置界面 `Ctrl+Shift+P` → 输入`C/C++: Edit Configurations (UI)` 2. 检查`Compiler path`字段是否指向`g++.exe` 例如:`D:\mingw64\bin\g++.exe`[^2] #### 步骤2:配置tasks.json(构建任务) ```json { "version": "2.0.0", "tasks": [ { "type": "shell", "label": "C/C++: g++.exe build active file", "command": "g++", "args": [ "-g", "${file}", "-o", "${fileDirname}\\${fileBasenameNoExtension}.exe" ], "options": { "cwd": "${workspaceFolder}" }, "problemMatcher": ["$gcc"] } ] } ``` * `-g`参数生成调试信息[^3] * 输出路径建议保持`${fileDirname}`格式 #### 步骤3:配置launch.json调试配置) ```json { "version": "0.2.0", "configurations": [ { "name": "g++.exe - 生成和调试活动文件", "type": "cppdbg", "request": "launch", "program": "${fileDirname}\\${fileBasenameNoExtension}.exe", "args": [], "stopAtEntry": false, "cwd": "${workspaceFolder}", "environment": [], "externalConsole": true, "MIMode": "gdb", "miDebuggerPath": "D:\\mingw64\\bin\\gdb.exe", "preLaunchTask": "C/C++: g++.exe build active file" } ] } ``` * `preLaunchTask`必须tasks.json中的`label`完全一致[^3] * `miDebuggerPath`需指向实际gdb安装路径 #### 步骤4:验证配置 1. 新建测试文件`test.cpp` 2. 按`F5`启动调试 3. 观察输出窗口是否显示: ``` 已启动调试会话 程序正常退出 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值