the*_*der 17 build-process cross-platform cmake visual-studio
我正在使用cmake来管理我的跨平台构建,除了这个问题,我已经解决了所有问题.我设置RUNTIME_OUTPUT_DIRECTORY
了一个bin/
存储数据文件的目录.在Linux上,这很好用.在Windows上,可执行文件放在Debug
/ Release
子目录中,具体取决于构建类型.有没有办法让cmake将可执行文件复制到正确的目录,或者(甚至更好)完全停止使用这些子目录?
Chr*_*uns 14
我一直在使用Ogapo报道的精美前缀属性hack 多年.有用.
但是从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}")
Run Code Online (Sandbox Code Playgroud)
小智 11
我不确定这些目录是故意的还是错误的,但是冒着前向不兼容的风险,您可以添加:
if (MSVC_IDE)
# hack to get around the "Debug" and "Release" directories cmake tries to add on Windows
set_target_properties (${NAME} PROPERTIES PREFIX "../")
endif()
Run Code Online (Sandbox Code Playgroud)
这一直在为我工作
归档时间: |
|
查看次数: |
12827 次 |
最近记录: |