如何使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的标准值为DEBUG
, RELEASE
, MINSIZEREL
和RELWITHDEBINFO
)。
使用set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "/some/full/path/to/bin")
使用EXECUTABLE_OUTPUT_PATHvariables来设置所需的path。 有关详细信息,请参阅在线cmake文档:
$ cat CMakeLists.txt project (hello) set(EXECUTABLE_OUTPUT_PATH "bin") add_executable (hello hello.c)