我正在使用cmake用于管理我的跨平台构建,除了这个问题之外,我已经解决了所有问题。我将 RUNTIME_OUTPUT_DIRECTORY 设置为存储数据文件的 bin/目录。在 Linux 上,这工作得很好。在 Windows 上,根据构建类型,可执行文件会放置在 Debug
/Release
子目录中。有什么办法可以得到cmake将可执行文件复制到正确的目录,或者(更好)完全停止使用这些子目录?
最佳答案
我一直在使用Ogapo报告的精细前缀属性黑客攻击。多年。它有效。
但从 CMake 2.8 版开始,官方支持避免在 Windows 上使用 Release/Debug 子目录。
使用全局 CMAKE_<ARTIFACT>_OUTPUT_DIRECTORY_<CONFIGURATION>
变量,或每个目标 <ARTIFACT>_OUTPUT_DIRECTORY_<CONFIGURATION>
属性,如下所示:
SET( CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG "${OUTPUT_DIRECTORY}")
SET( CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE "${OUTPUT_DIRECTORY}")
SET( CMAKE_LIBRARY_OUTPUT_DIRECTORY_DEBUG "${OUTPUT_DIRECTORY}")
SET( CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELEASE "${OUTPUT_DIRECTORY}")
SET( CMAKE_ARCHIVE_OUTPUT_DIRECTORY_DEBUG "${OUTPUT_DIRECTORY}")
SET( CMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELEASE "${OUTPUT_DIRECTORY}")
关于visual-studio - Windows 上的 cmake RUNTIME_OUTPUT_DIRECTORY,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/543203/