cmake之install总结(指定安装文件和安装位置)

背景

cmake不仅可以构建可执行文件,还可以安装。使用CMake,我们可以使用install()命令指定安装规则。只需要指定安装位置和待安装的目标文件,十分简单。

以cmake官方教程为例(3.24版本,Step4:https://cmake.org/cmake/help/v3.24/guide/tutorial/Installing%20and%20Testing.html

可以分为2步:1.在CMakeLists.txt文件中加入install命令;2.使用cmake指令指定安装位置

在CMakeLists.txt文件中加入install命令

首先在子路径下的CMakeLists.txt文件中加入:

install(TARGETS MathFunctions DESTINATION lib)
install(FILES MathFunctions.h DESTINATION include)

这两行的作用是将MathFunctions安装到lib路径下,将MathFunction.h安装到include路径下。

然后在根路径下的CMakeLists.txt文件中加入:

install(TARGETS Tutorial DESTINATION bin)
install(FILES "${PROJECT_BINARY_DIR}/TutorialConfig.h"
  DESTINATION include
  )

这两行的作用是将Tutorial安装到bin路径下,将TutorialConfig.h安装到include路径下。

从CMakeLists.txt的前文可知,Tutorial是可执行文件,MathFunctions是库文件,TutorialConfig.hMathFunction.h是头文件,因此分别安装到bin目录、lib目录和include目录,符合通常规则。

使用cmake指令指定安装位置

如教程中所说,首先使用cmake命令,构建cmake项目。然后可以选择官方安装方式,使用cmake --install .命令安装,命令中可以设定prefix,以指定安装位置。
如果是之前的cmake版本,cmake不支持install选项的话,可以使用make install代替。

PS:怎么指定安装路径的各种方法

方法1:修改cmake文件。在cmake文件中加入set(CMAKE_INSTALL_PREFIX "../install")
方法2:修改cmake命令参数。cmake -DCMAKE_INSTALL_PREFIX="../install"
方法3:使用ccmake调整CMAKE_INSTALL_PREFIX。
方法4(不推荐):使用make命令参数。make DESTDIR=absolute/path install

总结

文末总结了各种指定安装路径的方法,当不想把文件安装到默认位置的时候,可以参考。

猜你喜欢

转载自blog.csdn.net/luo_lucky/article/details/127624923