一、基本概念

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 工程