正确使用VS_DEBUGGER_WORKING_DIRECTORY等

时间:2019-04-16 17:17:23

标签: visual-studio cmake

我正在尝试使用新的VS_DEBUGGER_WORKING_DIRECTORY和VS_DEBUGGER_COMMAND属性,以方便在CMake生成的Visual Studio项目文件(在我的情况下为Visual Studio 2013)中进行调试。

除此以外,我配置中的其他所有内容都有效……

我从“常规” 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)出现在什么位置他们应该做。但是,它不起作用。当我尝试调试时,收到消息“无法开始调试。请检查调试器设置...”

Initial failure; the fields are populated correctly, but no debugging ensues

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

Deleted the fields, and typed them in again exactly as before; now it works

我在做什么错了?

1 个答案:

答案 0 :(得分:1)

事实证明,解决方案是分别用CMake生成器表达式“ manifest.json”和“ $<TARGET_FILE:myApplication>”替换“ $(TargetPath)”和“ $(TargetDir)”,即:

$<TARGET_FILE_DIR:myApplication>