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

4

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

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

这个答案提供了正确的语法,所以我尝试了以下内容:

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个回答

3
这可以通过以下方式设置调试器的工作目录来实现:
set_property(TARGET my_target PROPERTY VS_DEBUGGER_WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR})

CMAKE_CFG_INTDIR是构建变量,它提供了Visual Studio中当前目标配置的信息。


这对我没用。它将工作目录设置为CMake源文件夹。 - Totte Karlsson

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接