Visual Studio 2019中使用CMake同时调试多个target的方法
VS2019 CMake项目同时调试两个Target的实现方法
前置确认
- 使用VS2019 16.0及以上版本,低于该版本不支持原生复合调试配置
- 两个可执行子工程已在CMakeLists.txt中通过
add_executable(进程名 源文件列表)正确定义 - VS已完成CMake缓存加载,切换到CMake目标视图后可看到两个可执行Target
方法一:直接使用VS打开CMake文件夹(无需生成sln)
这是VS2019原生支持的方式,适配直接打开CMake目录的常规工作流。
步骤1:打开launch.vs.json配置文件
- 点击顶部调试栏启动按钮旁的下拉箭头,选择「添加调试配置」
- VS会自动打开项目根目录下(或.vs隐藏目录下)的
launch.vs.json文件
步骤2:添加两个Target的单独调试配置
- 在配置文件的顶层数组中,通过右下角的「添加配置」下拉,依次选择你的主进程Target、Stub Target,VS会自动生成对应配置块,示例如下:
{ "version": "0.2.1", "defaults": {}, "configurations": [ // 主进程配置 { "type": "default", "project": "CMakeLists.txt", "projectTarget": "主进程.exe (src\\主进程目录名)", "name": "主进程" }, // Stub配置 { "type": "default", "project": "CMakeLists.txt", "projectTarget": "stub.exe (tests\\stub目录名)", "name": "stub" } ] }
- *若有相对路径依赖(比如配置文件、测试数据),可在对应配置中添加
currentDir字段指定工作目录,示例:
"currentDir": "${workspaceRoot}\\src\\主进程目录名"
步骤3:添加复合启动配置
- 在
configurations数组中新增一个compound类型的配置,按启动顺序填写两个单独配置的name(需先启动的进程放前面):
{ "name": "同时调试主进程和Stub", "type": "compound", "targets": [ "stub", "主进程" ] }
步骤4:启用复合启动
- 保存
launch.vs.json,回到顶部启动项下拉列表,选中「同时调试主进程和Stub」 - 按F5即可同时启动两个进程,且两个进程都会挂载调试器。
方法二:生成VS解决方案(sln)后配置
适合习惯使用传统sln工作流的用户。
步骤1:生成sln文件
- 打开VS2019的「适用于VS的开发人员命令提示符」,进入项目根目录,执行CMake命令生成对应架构的sln:
cmake -B build -G "Visual Studio 16 2019" -A x64
- 生成的sln文件位于
build目录下。
步骤2:配置多启动项目
- 打开生成的sln文件,右键顶部的解决方案节点,选择「属性」
- 进入「通用属性 → 启动项目」页面,选择「多启动项目」
- 将两个子工程的操作都设置为「调试」,调整启动顺序(将Stub排在主进程前)
- 保存配置后按F5即可同时调试两个进程。
内容的提问来源于stack exchange,提问作者Jepessen
相关产品推荐
相关产品推荐

