其它语言:
英语 文章: autotools的使用 ...更多 书籍资源: autotools ...更多 给我发email
?
? 使用autotools配置管理跨平台项目 ?一、简介
1.程序的跨平台
???? 开发能够运行在多种不同平台上的软件是一项需要很多技巧与努力的工作。必须有多种平台的相关知识。仅仅创建能够在多种不同的*nix系统上运行的程序也要做大量的工作。首先,代码本身必须是可移植的,可移植代码很少对运行时的硬件以及可以使用的软件库等有所假设。
开发者必须对不同系统的编译与运行环境,甚至是硬件系统结构有足够多的了解。gnu/linux中普遍使用的gnu软件,虽然也存在于许多其他的操作系统与硬件平台,但是这不是操作系统必须的。此外也可能存在以下情况:
编译器可能不遵循iso标准 函数库可能缺少关键的特性 操作系统的api可能有所不同 文件系统所做的约定有所不同因此,在linux下的开发人员不得不编写一个通用的makefile,并且告诉用户如何编辑这个makefile文件以适应本机环境。
一般开源项目与gnu的项目的源代码都是通过configure命令生成makefile来进行编译的。如果你想使你的 项目表现的更专业一点,想省去写makefile的麻烦,如果你想管理好有一堆源代码的项目。那么这篇文章非常 适合你。
2.autotools的构成与历史
其实gnu/autotools是由一组命令行工具构成,它们包括:autoconf,automake,libtool等。它们最早只是 一组unix下的shell script。更详细的信息,可以访问gnu manual。3.它们是怎样工作的
下图是整个autotools的工作流程及架构图:图中文字颜色为绿色的文件是linux下的可执行文件。
以下详细的为大家介绍一下该流程。makefile是最终文档,在发布源代码包时并不存在,一般是由使用者在自己的平台上生成。要完成该工作,首先要准备好configure.in,makefile.am, aclocal.m4,如有需要可准备好config.h.in。configure.in可以手动创建,也可以由autoscan命令生成的模板文件configure.scan重命名得到,autoscan只需在源代码树根目录下运行一次既可。aclocal.m4由aclocal程序生成。当准备好configure.in与aclocal.m4时既可运行autoconf以生成configure可执行文件。准备好makefile.am文件后,既可运行automake生成makefile.in文件,最后在编译以前运行一次configure,检查系统并生成makefile。然后就是make,make install了:),下面我们将以一个c++源程序为例做为这个流程的一个实践。二、实战与分析
1.实战
hello.cpp#include
... 下一页