如何使cmake输出成为“bin”目录?

我目前正在构build一个插件结构的项目。 我正在使用cmake来编译该项目。 插件被编译在单独的目录中。 我的问题是,cmake编译和保存二进制文件和插件,dynamic库,在源的目录结构。 如何让cmake把文件保存在./bin目录中?

就像在Oleg的回答中,我相信设置的正确variables是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]附加到variables/属性名称,以使输出目录适用于特定configuration(config的标准值为DEBUGRELEASEMINSIZERELRELWITHDEBINFO )。

使用set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "/some/full/path/to/bin")

使用EXECUTABLE_OUTPUT_PATHvariables来设置所需的path。 有关详细信息,请参阅在线cmake文档:

https://cmake.org/cmake/help/v2.8.8/cmake.html

 $ cat CMakeLists.txt project (hello) set(EXECUTABLE_OUTPUT_PATH "bin") add_executable (hello hello.c)