Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cmake 将标题/库/可执行文件移动到特定目录_Cmake - Fatal编程技术网

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

Cmake 将标题/库/可执行文件移动到特定目录,cmake,Cmake,我最近开始在我的一个多平台项目中使用CMake,但我在想怎么做时遇到了一点困难 基本上,在这个项目中,我有多个库和可执行文件,都在它们自己的文件夹中。我想将所有编译过的库放在构建时的一个目录中,即CMake构建文件夹中的一个lib文件夹。我想对可执行文件做同样的事情 CMake Build Directory | ----------> bin (where i want the executables to go) | ----------> lib (where i want

我最近开始在我的一个多平台项目中使用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)
UTIL和应用程序中有我正在制作的所有不同库和可执行文件的目录。我的源目录的基本文件夹中有一个CMakeLists,它添加了所有子目录。如果有任何不合理的地方,请随意询问。

查看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

查看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

您还可以使用:

  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 )
您还可以使用以下选项:

  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 )

此外,对于以下各项:

install(文件${HEADERS}
目的地公司)

[当安装一组头文件时]

install(目录包括/${PROJECT\u NAME}/
目的地公司)

[要安装的头目录时]


此外,对于包括:

install(文件${HEADERS}
目的地公司)

[当安装一组头文件时]

install(目录包括/${PROJECT\u NAME}/
目的地公司)

[要安装的头目录时]


注意:只有使用
makeinstall
才能真正实现此效果。注意:只有使用
makeinstall
才能真正实现此效果。