一、基本概念
CMake 与 Automake 最终会转换为 Makefile 文件,然后执行 Makefile 相关的操作命令。
1.1 Makefile
Makefile 定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为 Makefile 就像一个 Shell 脚本一样,其中也可以执行操作系统的命令。
1.2 CMake
CMake 是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程)。他能够输出各种各样的makefile 或者 project 文件。
1.3 Automake
Automake 是一种帮助自动产生 Makefile 文件的软件。程序设计者只需要写一些预先定义好的宏,提交给 Automake 处理后会产生一个可以供 Autoconf 使用的 Makefile.in文件。再配合利用 Autoconf产生的自动配置设置文件 configure 即可产生一份符合 GNU Makefile 惯例的 Makeifle 了。
二、编译流程
2.1 Makefile 编译
# 编译源码(当前路径为 Makefile 文件所在目录)make# 安装编译后的头文件、库文件和可执行文件(非管理员需要su)make install
2.2 CMake 编译
# 此处以 outside-build 为例mkdir build# 在此处执行构工作,产生的所有文件均位于此处,不影响原工程文件.cd build# 自动构建 Makefile 文件cmake ..# 编译源码make# 安装库make install
2.3 Automake 编译
# 根据目标平台实例化配置文件autoreconf --install# 自动构建 Makefile 文件./configure# 编译源码make# 安装库make install
三、参考资料
- 1. 创建一个 Automake 工程