将Visual Studio调试器工作目录设置为CMake中的可执行输出目录

时间:2017-11-12 01:41:09

标签: c++ visual-studio cmake

Visual Studio的调试器默认工作目录为$(ProjectDir)

我真正想要的是设置为$(TargetDir)(我正在运行的.exe所在的位置)。

This answer提供了正确的语法,因此我尝试了以下方法:

if (CMAKE_CXX_COMPILER_ID MATCHES "MSVC")
  set_target_properties(${PROJECT_NAME} PROPERTIES VS_DEBUGGER_WORKING_DIRECTORY ${PROJECT_BUILD_DIR}/Debug)
endif()

然而,这个硬编码Debug,我不喜欢。

我在最后尝试$<CONFIG>但在Visual Studio中无效(表达式未被评估)。

我也试过$(TargetDir),但这不起作用。 如果我手动删除变量$(TargetDir)并将其重新粘贴,则可以正常工作。

如何在不对其进行硬编码的情况下将调试器工作目录设置为可执行输出目录?

1 个答案:

答案 0 :(得分:2)

这可以通过设置调试器工作目录来完成,如下所示:

set_property(TARGET my_target PROPERTY VS_DEBUGGER_WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR})

CMAKE_CFG_INTDIR解析为构建变量,它在Visual Studio中提供当前目标配置。