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