将标题/库/可执行文件移动到特定目录

时间:2011-06-09 13:45:05

标签: cmake

我最近开始在我的一个多平台项目中使用CMake,但是我在弄清楚如何做某事时遇到了一些麻烦。

基本上,在项目中我有多个库和可执行文件,都在他们自己的文件夹中。我想将所有已编译的库放在构建的一个目录中,即CMake构建文件夹中的lib文件夹。我想为可执行文件做同样的事情。

CMake Build Directory

| ----------> bin (where i want the executables to go)

| ----------> lib (where i want the libraries to go)

| ----------> utils (where the libraries are ordinarily compiled)

| ----------> test (where the executables are ordinarily compiled)

在utils和apps中有一些目录,用于我正在制作的所有不同的库和可执行文件。我的源目录的基本文件夹中有一个CMakeLists,它添加​​了所有子目录。如果有什么不合理的话就随便问一下。

3 个答案:

答案 0 :(得分:5)

您也可以使用:

  set( CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin )
  set( CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib )
  set( CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib )

答案 1 :(得分:3)

查看install CMake命令。

此页面的示例:

install(TARGETS myExe mySharedLib myStaticLib
        RUNTIME DESTINATION bin
        LIBRARY DESTINATION lib
        ARCHIVE DESTINATION lib/static)
install(TARGETS mySharedLib DESTINATION /some/full/path)

因此您可以使用CMAKE_BINARY_DIR代替/ some / full / path

答案 2 :(得分:1)

此外,对于包括:

install( FILES ${HEADERS} DESTINATION inc )

[当要安装的头文件集时]

install( DIRECTORY include/${PROJECT_NAME}/ DESTINATION inc)

[当要安装的标题目录时]

More Info