Linux 下 Makefile 的 automake 生成全攻略
701.04 KB
14 页
0 评论
语言 | 格式 | 评分 |
---|---|---|
中文(简体) | .pdf | 3 |
摘要 | ||
本文详细介绍了在Linux环境下使用automake和autoconf工具自动生成符合GNU软件规范的Makefile的方法。通过手工编写configure.in和Makefile.am文件,并执行一系列命令(如aclocal、autoconf、automake、configure等),可以自动创建符合惯例的Makefile,从而简化编译和安装过程。文档还介绍了Makefile的基本功能、使用环境、从hello world入手的详细步骤,以及各种make目标的功能,如make、make clean、make install等。适用于开发人员,特别是希望遵循开源开发规范的程序员。 | ||
AI总结 | ||
# 《Linux 下 Makefile 的 automake 生成全攻略》总结
本文介绍了如何在Linux下使用autoconf和automake工具自动生成符合GNU软件惯例的Makefile,帮助开发者高效管理程序编译和安装过程。以下是核心内容的总结:
---
## 一、Makefile 介绍
- **Makefile 的作用**:用于自动编译和链接代码,记录文件依赖关系,避免不必要的重新编译。
- **常见问题**:手工编写符合GNU惯例的Makefile繁琐,且与开发环境密切相关,容易因环境变化而需要修改。
---
## 二、解决方案:autoconf 和 automake
- **autoconf**:生成configure脚本,用于检查系统特性并生成Makefile。
- **automake**:根据Makefile.am生成Makefile.in,自动生成符合GNU惯例的Makefile。
---
## 三、从 Hello World 入手
1. **创建文件**:
- 新建helloworld目录。
- 创建helloworld.c文件:
```c
int main(int argc, char** argv) {
printf("Hello, Linux World!\n");
return 0;
}
```
- 创建configure.in文件,内容包括:
```bash
AC_INIT(helloworld, 1.0, [email])
AM_INIT_AUTOMAKE(helloworld, 1.0)
AC_PROG_CC
AC_OUTPUT(Makefile)
```
- 创建Makefile.am文件,内容包括:
```bash
AUTOMAKE_OPTIONS=foreign
bin_PROGRAMS=helloworld
helloworld_SOURCES=helloworld.c
```
2. **生成配置文件**:
- 执行命令:
```bash
aclocal
autoconf
automake --add-missing
./configure
make
```
3. **生成结果**:
- 自动生成Makefile,成功编译并运行helloworld程序。
---
## 四、Makefile.am 文件
- **关键宏**:
- `AUTOMAKE_OPTIONS=foreign`:设置为非GNU标准,减少文件检查。
- `bin_PROGRAMS=helloworld`:指定生成的可执行文件名。
- `helloworld_SOURCES=helloworld.c`:指定源文件。
---
## 五、configure 脚本
- **功能**:检查系统环境,生成Makefile。
- **键宏**:
- `AC_INIT`:初始化配置,定义软件包名和版本。
- `AM_INIT_AUTOMAKE`:初始化automake,定义软件包名和版本。
- `AC_PROG_CC`:检查C编译器。
- `AC_OUTPUT`:指定生成的Makefile文件。
---
## 六、生成Makefile
- **命令**:`automake --add-missing`
- **功能**:根据Makefile.am生成Makefile.in,并添加缺失的标准文件。
---
## 七、make 命令
- **常用目标**:
- `make`:编译代码,生成可执行文件。
- `make clean`:清除编译生成的文件。
- `make install`:安装程序到系统目录(如`/usr/local/bin`)。
- `make dist`:生成软件包(如`helloworld-1.0.tar.gz`)。
- `make distcheck`:测试并检查软件包。
- `make distclean`:清除所有生成文件,包括configure生成的文件。
---
## 八、总结
通过本文,开发者可以了解如何使用autoconf和automake工具 自动生成符合GNU惯例的Makefile,从而简化代码编译和安装过程。这种方法特别适合开发开放源代码软件或管理复杂项目。进一步学习可以参考开源项目(如sqlite、cppunit)的配置文件。 |
P1
P2
P3
P4
P5
P6
P7
下载文档到本地,方便使用
- 可预览页数已用完,剩余
7 页请下载阅读 -
文档评分