Linux 下不同编译类型的编译流程

服务器

浏览数:196

2019-6-1

AD:资源代下载服务

一、基本概念

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

三、参考资料

作者:沙加