我正在尝试使用新的VS_DEBUGGER_WORKING_DIRECTORY和VS_DEBUGGER_COMMAND属性来简化CMake生成的Visual Studio项目文件(在我的示例中是Visual Studio2013)中的调试。
我的配置中的其他所有东西都可以工作,除了这个…
我从“常规”Visual Studio项目文件(即不是从CMake生成的文件)中注意到,在“配置属性/调试”对话框中,“命令”和“工作目录”字段默认分别填充$(TargetPath)和$(TargetDir)。因此,在我的CMakeLists.txt文件中,我有:
set_target_properties(myApplication PROPERTIES VS_DEBUGGER_WORKING_DIRECTORY "$(TargetDir)"
VS_DEBUGGER_COMMAND "$(TargetPath)"
VS_DEBUGGER_ENVIRONMENT "%PATH%;C:\\Qt\\5.9.7\\msvc2013_64\\bin")事实上,我已经尝试过使用和不使用$(TargetDir)和$(TargetPath)周围的引号,每次的结果都是相同的;它们在整个过程中是绝对必要的。
然后,我构建应用程序,转到“配置属性/调试”对话框,验证它看起来与普通项目文件完全相同,并且$(TargetDir)和$(TargetPath)出现在它们应该出现的位置。但是它不起作用;当我尝试调试时,我得到一条消息说:"Unable to start debug . Check your debugger settings...“

因此,我从对话框中删除了文本$(TargetDir)和$(TargetPath),然后像以前一样再次键入它们:然后它就可以完美地工作了。

我做错了什么?
发布于 2019-04-17 16:31:23
事实证明,解决方案是将"$(TargetPath)“和"$(TargetDir)”分别替换为CMake生成器表达式"$<TARGET_FILE:myApplication>“和"$<TARGET_FILE_DIR:myApplication>",即:
set_target_properties(myApplication PROPERTIES VS_DEBUGGER_WORKING_DIRECTORY "$<TARGET_FILE_DIR:myApplication>"
VS_DEBUGGER_COMMAND "$<TARGET_FILE:myApplication>"
VS_DEBUGGER_ENVIRONMENT "PATH=%PATH%;${CMAKE_PREFIX_PATH}/bin")https://stackoverflow.com/questions/55713475
复制相似问题