使用 Autoconf 和 Automake 实现软件的跨平台配置与编译
1. Unix 软件可移植性问题与解决方案
Unix 的一大吸引力在于其应用程序的可移植性,这得益于它们大多采用 C 语言编写。然而,随着 Unix 的广泛使用,AT&T 和 BSD 等不同版本的 Unix 出现,其底层子系统和 API 的差异逐渐显著,导致可移植性成为挑战。
传统解决可移植性问题的方法是在代码中使用特定平台的定义,如#ifdef YOUR - UNIX - VARIANT,但这种方法会使代码难以阅读和维护。更可行的解决方案是动态测试硬件和操作系统的特性,并生成适合特定平台的 Makefile,Autoconf 和 Automake 就是实现这一目标的工具。Autoconf 用于生成自动配置源代码包的 shell 脚本,而 Automake 则能生成符合 GNU 编码标准的 Makefile。
2. 安装和配置 Autoconf 和 Automake
2.1 决定升级或替换
Autoconf 和 Automake 默认安装在/usr/local/bin,这不会覆盖系统中现有的版本。要确保执行新版本,需验证/usr/local/bin在环境变量PATH中位于默认版本所在目录(通常是/usr/bin)之前。可以使用configure脚本的--prefix选项更改安装路径,例如: