visual-studio - Windows 上的 cmake RUNTIME_OUTPUT_DIRECTORY

标签 visual-studio build-process cross-platform cmake

我正在使用用于管理我的跨平台构建,除了这个问题之外,我已经解决了所有问题。我将 RUNTIME_OUTPUT_DIRECTORY 设置为存储数据文件的 bin/目录。在 Linux 上,这工作得很好。在 Windows 上,根据构建类型,可执行文件会放置在 Debug/Release 子目录中。有什么办法可以得到将可执行文件复制到正确的目录,或者(更好)完全停止使用这些子目录?

最佳答案

我一直在使用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/

相关文章:

c++ - 如何忽略 LNK2038(定义不匹配)?

java - 在 Java 中查找用户主目录的最佳方法是什么?

c# - Visual Studio 在哪里存储 SQL Server Data Tools 中使用的数据连接字符串

build-process - 用makefile和静态模式规则进行树外构建

java - Gradle 从类路径上的文件申请?

android - gradle 构建错误 :Execution failed for task ':core-app:dexDebug'

c++ - Visual Studio 用户使用 GCC/make 的介绍

c++ - 跨平台编程题(文件I/O)

wpf - Visual Studio 2010 中的 prism 项目链接器发生了什么变化?

asp.net - 是否可以使用 dacpac 文件轻松地将数据从轻型 SQL Server Express 迁移到 Azure?