cmake:借助 cpack 部署程序

您所在的位置:网站首页 编译cmake工程 cmake:借助 cpack 部署程序

cmake:借助 cpack 部署程序

2023-03-16 16:49| 来源: 网络整理| 查看: 265

1. 概述

嵌入式开发时,源码经过交叉编译生成的目标文件需要上传到设备中。如果是单个文件还比较方便,只需一条 scp 命令即可。如果有多个目标文件,使用多条 scp 命令会很麻烦。好在 cmake 提供了 cpack 工具,使用 cpack 可以将需要上传的文件打包到一起,比如生成一个 .tar.gz 格式的压缩包,然后使用一条 scp 命令就可以了。

2. cpack2.1 测试工程

以下为测试工程的目录结构。

├── CMakeLists.txt ├── hello-world │ ├── CMakeLists.txt │ ├── hello │ │ ├── CMakeLists.txt │ │ ├── hello.c │ │ └── hello.h │ ├── hello-world.c │ ├── hello-world.h │ └── world │ ├── CMakeLists.txt │ ├── world.c │ └── world.h ├── readme.md └── main.c

hello/ 和 world/ 目录分别生成 libhello.so 和 libworld.so。hello-world/ 依赖上述两个 so 生成 libhelloworld.so,在 main.c 中调用 libhelloworld.so 提供的接口。

│3. 总结

使用 cpack 部署程序还是很方便的。不过,有以下两点要注意:

install(... DESTINATION ...) 指令中使用 DESTINATION 指定的目录必须为相对路径,相对于 build/ 的路径;工程中,同时需要将另外 3 个 so 文件也一并进行打包。那么,需要在生成 so 文件的 CMakeLists.txt 中使用 install(TARGETS ...) 命令将生成的 so 放到指定的目录。示例工程中会将所有的 so 文件放在 lib/ 目录下。详细代码请查看 gitee 仓库——https://gitee.com/sdc-coding/cpack-demo;4. 官方地址

https://cmake.org/cmake/help/latest/module/CPack.html

https://cmake.org/cmake/help/latest/command/install.html#command:install

https://cmake.org/cmake/help/latest/cpack_gen/archive.html



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3