cmake:借助 cpack 部署程序 |
您所在的位置:网站首页 › 编译cmake工程 › cmake:借助 cpack 部署程序 |
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.chello/ 和 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 |