如何修改CMake+VSCode的启动目标为64Bit目录下的程序?
解决VS Code中CMake目标启动路径指向64Bit目录的问题
方法一:通过CMakeLists.txt全局配置
在app目录的CMakeLists.txt中添加以下配置,直接指定运行和调试时的目标程序路径及工作目录:
# 配置目标程序的启动路径为64Bit目录下的可执行文件 set_target_properties(${PROJECT_NAME} PROPERTIES # 指向64Bit目录中的exe,生成器表达式自动适配Debug/Release的文件名 VS_DEBUGGER_COMMAND "${CMAKE_SOURCE_DIR}/64Bit/$<TARGET_FILE_NAME:${PROJECT_NAME}>" # 设置工作目录为64Bit,确保程序能加载目录中的依赖DLL VS_DEBUGGER_WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}/64Bit" )
该配置会被VS Code的CMake扩展识别,点击「启动选定目标」或调试时,都会直接调用64Bit目录下的程序。
方法二:通过VS Code CMake扩展GUI修改单目标配置
若不想修改CMakeLists.txt,可直接在VS Code中调整:
- 打开左侧CMake扩展侧边栏,找到
app目标 - 右键点击该目标,选择「添加调试配置」
- 在自动生成的
launch.json中,修改以下字段:
(注意替换"program": "${workspaceFolder}/64Bit/app.exe", "cwd": "${workspaceFolder}/64Bit"app.exe为你的实际可执行文件名)
调试相关注意事项
- 确保Debug模式下同步文件:
现有add_custom_command默认会在所有配置下执行,若之前仅针对Release,建议修改为适配所有配置的版本,保证Debug时最新的exe和pdb也能复制到64Bit:add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD # 复制可执行文件 COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:${PROJECT_NAME}> ${CMAKE_SOURCE_DIR}/64Bit/$<TARGET_FILE_NAME:${PROJECT_NAME}> # 复制符号文件(Debug模式下需要) COMMAND ${CMAKE_COMMAND} -E copy_if_different $<TARGET_PDB_FILE:${PROJECT_NAME}> ${CMAKE_SOURCE_DIR}/64Bit/$<TARGET_PDB_FILE_NAME:${PROJECT_NAME}> # 若有其他依赖DLL(如grid目录生成的DLL),一并复制 COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:grid> ${CMAKE_SOURCE_DIR}/64Bit/$<TARGET_FILE_NAME:grid> ) - 符号文件匹配:
只要pdb文件与exe同步复制到64Bit目录,VS Code调试器就能正常加载符号,断点、变量查看等调试功能均可正常使用。
内容的提问来源于stack exchange,提问作者macroland
相关产品推荐
相关产品推荐

