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)
并将其重新粘贴,则可以正常工作。
如何在不对其进行硬编码的情况下将调试器工作目录设置为可执行输出目录?
答案 0 :(得分:2)
这可以通过设置调试器工作目录来完成,如下所示:
set_property(TARGET my_target PROPERTY VS_DEBUGGER_WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR})
CMAKE_CFG_INTDIR
解析为构建变量,它在Visual Studio中提供当前目标配置。