我需要一种方法来使用 Ninja 生成器为我的 Visual Studio 2022 CMake 项目设置调试器工作目录。设置
VS_DEBUGGER_WORKING_DIRECTORY
目标属性不起作用:只有 launch.vs.json
编辑有效。我显然需要从 CMake 端设置它,因为在编辑启动文件时,我无法为我的 GitHub 存储库保存此设置。
另外我想说,设置该属性does仅在我设置 Visual Studio 17 2022 生成器并使用
.sln
文件而不是 Visual Studio 中的 CMake Project
打开我的项目的情况下才起作用,但这不是我想要的想要。
开发者想要设置工作目录一般有2个原因。
1.) 正在加载
files
.
如果这是你的情况,请看一下这个问题:从 Visual Studio 到 CMake,如何设置当前工作目录?
我描述了一种适用于 Visual Studio / Ninja 生成器的方法。
2.) 加载中
dlls
.
CMake 3.21 添加了针对这种情况的功能。
$<TARGET_RUNTIME_DLLS:tgt> New in version 3.21.
此生成器表达式可用于使用 cmake -E copy -t 命令将目标依赖的所有 DLL 复制到 POST_BUILD 自定义命令中的输出目录中。例如:
find_package(foo CONFIG REQUIRED) # package generated by install(EXPORT)
add_executable(exe main.c)
target_link_libraries(exe PRIVATE foo::foo foo::bar)
add_custom_command(TARGET exe POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy -t $<TARGET_FILE_DIR:exe> $<TARGET_RUNTIME_DLLS:exe>
COMMAND_EXPAND_LISTS
)
官方文档链接:
如果这两种方法都不适合您,请告诉我。