cmake使用教程(五)-cpack生成安装包,从理论到实践

├── CPackConfig.cmake ├── CPackSourceConfig.cmake ├── CTestTestfile.cmake ├── Makefile ├── MathFunctions ├── TutorialConfig.h └── cmake_install.cmake

注意其中两个生成的文件`CPackConfig.cmake`,`CPackSourceConfig.cmake`,一会又大用处。

下一步是按照一般的方式构建项目,然后在其上运行CPack。要构建一个二进制版本,可以运行:

cpack --config CPackConfig.cmake

下边是日志:

CPack: Create package using STGZ CPack: Install projects CPack: - Run preinstall target for: Tutorial CPack: - Install project: Tutorial CPack: Create package CPack: - package: /Users/saka/Desktop/Tutorial/Step6/build/Tutorial-1.0.1-Darwin.sh generated. CPack: Create package using TGZ CPack: Install projects CPack: - Run preinstall target for: Tutorial CPack: - Install project: Tutorial CPack: Create package CPack: - package: /Users/saka/Desktop/Tutorial/Step6/build/Tutorial-1.0.1-Darwin.tar.gz generated.

从日志可以看到生成了两个打包的文件`Tutorial-1.0.1-Darwin.sh`,`Tutorial-1.0.1-Darwin.tar.gz`。查看一下目录:

 ~/Desktop/Tutorial/Step6/build/ tree -L 1 . ├── CMakeCache.txt ├── CMakeFiles ├── CPackConfig.cmake ├── CPackSourceConfig.cmake ├── CTestTestfile.cmake ├── Makefile ├── MathFunctions ├── Tutorial ├── Tutorial-1.0.1-Darwin.sh ├── Tutorial-1.0.1-Darwin.tar.gz ├── TutorialConfig.h ├── _CPack_Packages ├── cmake_install.cmake └── install_manifest.txt

查看一下压缩包内的文件:

 ~/Desktop/Tutorial/Step6/build/ tar -tf Tutorial-1.0.1-Darwin.tar.gz Tutorial-1.0.1-Darwin/bin/ Tutorial-1.0.1-Darwin/bin/Tutorial Tutorial-1.0.1-Darwin/bin/libMathFunctions.a Tutorial-1.0.1-Darwin/include/ Tutorial-1.0.1-Darwin/include/MathFunctions.h Tutorial-1.0.1-Darwin/include/TutorialConfig.h

这个是已经编译好的问答压缩而成的,解压后可以直接运行。

要构建一个源代码版本,可以运行:

cpack --config CPackSourceConfig.cmake

日志输出基本同上,只是包内的文件不一样:

 ~/Desktop/Tutorial/Step6/build/ tar -tf Tutorial-1.0.1-Source.tar.gz Tutorial-1.0.1-Source/CMakeLists.txt Tutorial-1.0.1-Source/TutorialConfig.h.in Tutorial-1.0.1-Source/tutorial.cxx Tutorial-1.0.1-Source/MathFunctions/

尾声

一转眼时间真的过的飞快。我们各奔东西,也各自踏上了自己的旅途,但是即使多年不见,也因为这份情谊我们依旧如从前那般“亲密”。不忘初心方得始终。加油吧,程序员们,在我看来35岁,40岁从来不是危机,只要永远不要忘记自己为何踏上征程!

再次感谢所有给我提供过题目的朋友们,感谢一路有你!

经验分享 程序员 微信小程序 职场和发展