在vscode下的cmake项目里传参调试c++命令行程序

环境:Linux(Ubuntu)+Vscode+cmake

1、在vscode扩展里下载CMake Tools工具

2、确保项目为CMake项目

CMakeLists.txt 文件里确保为 Debug 编译:

cmake 复制代码
SET(CMAKE_BUILD_TYPE "DEBUG") # 设置编译类型为Debug
SET(CMAKE_CXX_FLAGS_DEBUG "$ENV{CXXFLAGS} -O0 -Wall -g -ggdb") # 添加调试标志

3、开始编译传参调试

3、1编译

Ctrl+Shift+P 打开vsode命令窗口选择:CMake:Configure 会自动生成 build文件夹 完成cmake操作

上图是已经生成过的

应该显示:Build files have been written to:

3、2 生成

点击下方的 生成 完成make操作

在build文件夹会生成目标可执行程序

3.3、配置settings.json文件

按下 Ctrl+Shift+P,输入 "Open Settings (JSON)"

此处我显示的是: Preferences :Open Default Settings(JSON) 选择该选项

会生成一个.vscode文件夹里面有 settings.json 文件

参数通过args传入:假如程序是这样执行:./exe -e /path/infile.txt -o /path/output.bin 则需这样传入

json 复制代码
{
    "cmake.debugConfig": {
        "args": ["-e","path/infile.txt" ,
                 "-o","/path/output.bin"],
    }
}

/path/是你的文件路径

3.4、添加断点

在源代码文件里,数字行号前的小红点就是断点

3.5、调试

点击下方的小虫子图标,开始调试

注意

确保项目所需要的依赖已被安装完成

外链图片转存中...(img-nrunKaG4-1759730922780)

注意

确保项目所需要的依赖已被安装完成

相关推荐
W230357657313 小时前
经典算法:最长上升子序列(LIS)深度解析 C++ 实现
开发语言·c++·算法
.Ashy.13 小时前
2026.4.11 蓝桥杯软件类C/C++ G组山东省赛 小记
c语言·c++·蓝桥杯
minji...14 小时前
Linux 线程同步与互斥(三) 生产者消费者模型,基于阻塞队列的生产者消费者模型的代码实现
linux·运维·服务器·开发语言·网络·c++·算法
CoderCodingNo16 小时前
【GESP】C++三级真题 luogu-B4499, [GESP202603 三级] 二进制回文串
数据结构·c++·算法
hetao173383718 小时前
2026-04-09~12 hetao1733837 的刷题记录
c++·算法
6Hzlia18 小时前
【Hot 100 刷题计划】 LeetCode 136. 只出现一次的数字 | C++ 哈希表&异或基础解法
c++·算法·leetcode
汉克老师18 小时前
GESP2024年6月认证C++三级( 第二部分判断题(1-10))
c++·数组·位运算·补码·gesp三级·gesp3级
无限进步_19 小时前
【C++】只出现一次的数字 II:位运算的三种解法深度解析
数据结构·c++·ide·windows·git·算法·leetcode
小贾要学习19 小时前
【Linux】TCP网络通信编程
linux·服务器·网络·c++·网络协议·tcp/ip
哎嗨人生公众号20 小时前
手写求导公式,让轨迹优化性能飞升,150ms变成9ms
开发语言·c++·算法·机器人·自动驾驶