CMakeLists.txt中的 make install 命令介绍 [cmake编程]

应用场景抛出: linux下如何安装编译生成的目标文件???

常见安装方式有两种:

  1. 代码编译完成后,直接运行 make install 命令进行安装
  2. 打包时制定目

 一个简单的Makefile栗子

DESTDIR=
PREFIX=/usr
install:
    mkdir -p $(DESTDIR)/$(PREFIX)/bin
    install -m 755 hello $(DESTDIR)/$(PREFIX)/bin

运行 make install, 将 hello 直接安装在/usr/bin 目录.
也可以通过 make install DESTDIR=/tmp/test 将它安装在/tmp/test/usr/bin 目录.


那么在cmake中,同样支持 INSTALL 命令, 并且还有一个非常有用的变量 CMAKE_INSTALL_PREFIX
常见的用法

cmake -DCMAKE_INSTALL_PREFIX=/usr .

INSTALL 命令用于定义安装规则,安装内容包括可执行文件静态库动态库以及文件目录脚本

INSTALL命令格式:

INSTALL(TARGETS target...
               [ [ARCHIVE|LIBRARY|RUNTIME]
                 [DESTINATION <dir>]
               ] [...])

命令解释:
TARGETS 后面跟的可能是二进制动态库静态库中的某一种或者全是
目标类型也相对的有三种: ARCHIVE特指静态库,LIBRARY特指动态库,RUNTIME特质可执行目标二进制
DESTINATION 定义安装路径,如果以 /" 开头,则说明指定的是绝对路径,此时的CMAKE_INSTALL_PREFIX就无效了

应用举栗子:

INSTALL(TARGETS myrun mylib mystaticlib
    RUNTIME DESTINATION bin
              LIBRARY DESTINATION lib
              ARCHIVE DESTINATION libstatic
               )

上面的例子会将:
可执行二进制 myrun 安装到${CMAKE_INSTALL_PREFIX}/bin 目录
动态库 libmylib 安装到${CMAKE_INSTALL_PREFIX}/lib 目录
静态库 libmystaticlib 安装到${CMAKE_INSTALL_PREFIX}/libstatic 目录
PS: 特别注意的是你不需要关心 TARGETS 具体生成的路径,只需要写上 TARGETS 名称就可以
了。

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

☜@_@达奚黑雁

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值