背景
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.h和MathFunction.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
。
总结
文末总结了各种指定安装路径的方法,当不想把文件安装到默认位置的时候,可以参考。
版权归原作者 luo_lucky 所有, 如有侵权,请联系我们删除。