如何在VSCode中通过CMake Tools启动同一CMake文件的主项目
问题:VSCode CMake Tools仅识别测试项目,无法启动main_project
当前.vscode/launch.json配置如下:
{ "name": "Launch main project", "type": "cppdbg", "request": "launch", // Resolved by CMake Tools: "program": "${command:cmake.launchTargetPath}", "args": [], "stopAtEntry": false, "cwd": "${workspaceFolder}", "environment": [ { // add the directory where our target was built to the PATHs // it gets resolved by CMake Tools: "name": "PATH", "value": "${env:PATH}:${command:cmake.getLaunchTargetDirectory}" } ], "MIMode": "gdb", "setupCommands": [ { "description": "Enable pretty-printing for gdb", "text": "-enable-pretty-printing", "ignoreFailures": true } ] }
CMakeLists.txt内容:
cmake_minimum_required(VERSION 3.2.0...3.5) project(main_project VERSION 0.1.0) set(CPACK_PROJECT_NAME ${PROJECT_NAME}) set(CPACK_PROJECT_VERSION ${PROJECT_VERSION}) include(CPack) add_subdirectory( tests ) // this is the test project add_executable(main_project main.cpp) target_include_directories(main_project PRIVATE ${YOUR_DIRECTORY})
解决方案
方法1:手动指定CMake启动目标
- 点击VSCode底部状态栏中CMake Tools显示的当前目标(通常是测试项目名称)
- 在弹出的目标列表里选择
main_project作为启动目标 - 重新运行launch配置,此时
${command:cmake.launchTargetPath}会自动指向main_project的可执行文件
方法2:直接指定可执行文件路径
如果方法1无效,可修改launch.json的program字段,直接填写main_project的实际编译路径:
"program": "${workspaceFolder}/build/main_project" // 根据你的构建目录结构调整,比如Debug版本可能是${workspaceFolder}/build/Debug/main_project
方法3:调整CMakeLists.txt的目标顺序
将主项目的编译代码移到测试项目之前,让CMake优先识别主项目:
cmake_minimum_required(VERSION 3.2.0...3.5) project(main_project VERSION 0.1.0) set(CPACK_PROJECT_NAME ${PROJECT_NAME}) set(CPACK_PROJECT_VERSION ${PROJECT_VERSION}) include(CPack) add_executable(main_project main.cpp) target_include_directories(main_project PRIVATE ${YOUR_DIRECTORY}) add_subdirectory( tests ) // this is the test project
方法4:设置CMake默认启动目标
在CMakeLists.txt末尾添加代码,指定main_project为全局默认启动目标:
set_property(GLOBAL PROPERTY VS_STARTUP_PROJECT main_project)
内容的提问来源于stack exchange,提问作者Chen Peleg
相关产品推荐
相关产品推荐

