pdf文档 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 页请下载阅读 -
文档评分
请文明评论,理性发言.