我们最近开始从使用普通视觉工作室项目切换到使用适当的CMake文件。以前我们将在解决方案根文件夹中包含“Content”文件夹,以允许我们的可执行文件使用相对路径(例如“../ Tiles / tileset1.png”)从中访问内容。
我们如何确保CMake正确复制文件,或以其他方式确保我们的可执行文件能够在从Visual Studio调试时找到内容文件夹而无需手动设置工作目录?
答案 0 :(得分:0)
我可以想到几个不同的选择:
让CMake将所有可执行文件放在同一文件夹中,如this question中所述。然后,您可以使用../Tiles
或../../Tiles
或其他任何内容。但请注意,您可能需要考虑按目标而不是全局设置此项,例如,使用:
set_target_properties(
my_target
PROPERTIES
RUNTIME_OUTPUT_DIRECTORY
${CMAKE_BINARY_DIR}/bin
)
设置CMAKE_RUNTIME_OUTPUT_DIRECTORY
工作正常,但有些人认为这是“旧”的做法。 (根据您的需要,您可能还需要设置LIBRARY_OUTPUT_DIRECTORY
,可能还需设置ARCHIVE_OUTPUT_DIRECTORY
。)
使用环境变量(例如,CONTENT_ROOT
或某些)来查找资源。硬编码对生产有意义的默认值,但允许开发人员为其特定的工作流程覆盖它。
实际上,1和2的组合可能是你最好的选择......