VScode中cmake调试

一般的cmake命令行测试方法:

cmake -S . -B build

cmake --build build

./build/cmake_debug

在vscode中使用图形化界面操作的方法

main.cpp

复制代码
#include <iostream>

int main()
{
    int num_a, num_b;
    num_a = 10;
    num_b = 20;
    std::cout << "num_a = " << num_a << std::endl;
    std::cout << "num_b = " << num_b << std::endl;
    return 0;
}

CMakeLists.txt

复制代码
cmake_minimum_required(VERSION 3.10)

project(cmake_debug)

add_executable(cmake_debug main.cpp)

task.json配置

复制代码
{
	"version": "2.0.0",
	"tasks": [
		{
			// cmake配置
			"type": "cppbuild",
			"label": "CMake配置",
			"command": "cmake", // cmake命令
			"args": [
				"-S", "${workspaceFolder}", // 源码目录
				"-B", "${workspaceFolder}/Build" // 编译目录
			],
			
			"options": {
				"cwd": "${workspaceFolder}" // 工作目录
			},
			"problemMatcher": [
				// "$gcc"
				"$msCompile"
			],
			// "group": "build",
			"group": {
				"kind":"build",
				"isDefault": true

		},
	},
	// 2. 构建
	{

		"type": "cppbuild",
		"label": "CMake 构建",
		"command": "cmake",
		"args": [
			"--build",
			"Build"
		],
		"problemMatcher" :"$msCompile",
		"group": {
			"kind": "build",
			"isDefault": true
		},
		"options": {
			"cwd": "${workspaceFolder}"
		}, 
		"dependsOn":[
			"CMake配置",
		]

	},
		
		{
			// 删除build目录
			"type": "shell",
			"label": "删除build目录",
			"command": "rm -rf Build",
			"options": {
				"cwd": "${workspaceFolder}" // 工作目录
			},
			"problemMatcher": [
				//"$gcc"
				"$msCompile"
			],
			"group": {
				"kind": "build",
				"isDefault": true
			},
		},
		// 4 运行可执行文件
		{
			"type" : "shell",
			"label" : "运行可执行文件",
			"command": "./Build/cmake_debug",
			"problemMatcher": [
				//"$gcc"
				"$msCompile"
			],	
			"group": {
				"kind": "build",
				"isDefault": true
			},	
			"dependsOn":[
				"CMake 构建"
			]
		
		},
			
		
	]
}

launch.json

复制代码
{
    // 使用 IntelliSense 了解相关属性。 
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "CMake调试",
            "type": "lldb",
            "request": "launch",
            "program": "${workspaceFolder}/Build/cmake_debug", // 编译后的程序,需要结合CMakeLists.txt中的add_executable()函数
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "miDebuggerPath": "/usr/bin/gdb",
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ],
            "preLaunchTask": "CMake 构建"
        }
    ]
}

setting.json

复制代码
{
    "files.associations": {
        "iostream": "cpp"
    }
}

目录结构:

按照上述配置完成也可以正常debug

初次学习,请多指教!!!

相关推荐
heimeiyingwang9 天前
【深度学习加速探秘】Winograd 卷积算法:让计算效率 “飞” 起来
人工智能·深度学习·算法
LyaJpunov9 天前
深入理解 C++ volatile 与 atomic:五大用法解析 + 六大高频考点
c++·面试·volatile·atomic
小灰灰搞电子9 天前
Qt PyQt与PySide技术-C++库的Python绑定
c++·qt·pyqt
成遇9 天前
在Vscode中安装Sass并配置
vscode·rust·sass
时空自由民.9 天前
C++ 不同线程之间传值
开发语言·c++·算法
ai小鬼头9 天前
AIStarter开发者熊哥分享|低成本部署AI项目的实战经验
后端·算法·架构
小白菜3336669 天前
DAY 37 早停策略和模型权重的保存
人工智能·深度学习·算法
zeroporn9 天前
以玄幻小说方式打开深度学习词嵌入算法!! 使用Skip-gram来完成 Word2Vec 词嵌入(Embedding)
人工智能·深度学习·算法·自然语言处理·embedding·word2vec·skip-gram
Ray_19979 天前
C++二级指针的用法指向指针的指针(多级间接寻址)
开发语言·jvm·c++
API开发9 天前
苹果芯片macOS安装版Homebrew(亲测) ,一键安装node、python、vscode等,比绿色软件还干净、无污染
vscode·python·docker·nodejs·openssl·brew·homebrew