一、基本概念
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 工程