我目前正在构建一个具有插件结构的项目。我正在使用CMake编译这个项目。插件被编译在不同的目录中。我的问题是CMake编译并将二进制文件和插件、动态库保存在源代码的目录结构中。如何让CMake将文件保存在./bin目录中?
发布于 2011-07-06 18:33:41
正如奥列格的答案一样,我认为要设置的正确变量是CMAKE_RUNTIME_OUTPUT_DIRECTORY。我们在根CMakeLists.txt中使用以下内容:
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
您还可以基于每个目标指定输出目录:
set_target_properties( targets...
PROPERTIES
ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib"
LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib"
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin"
)
在这两种情况下,您都可以将_[CONFIG]
附加到变量/属性名称,以使输出目录应用于特定配置(配置的标准值为DEBUG
、RELEASE
、MINSIZEREL
和RELWITHDEBINFO
)。
发布于 2011-07-06 18:29:56
使用set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "/some/full/path/to/bin")
发布于 2011-07-06 18:25:16
使用EXECUTABLE_OUTPUT_PATH
CMake变量设置所需的路径。有关详细信息,请参阅在线CMake文档:
https://stackoverflow.com/questions/6594796
复制相似问题