(转载)Auto book 中文版(一)

2009-05-13 07:47:17来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

Auto系列软件中文版网站的部分页面不稳定,为了以后查询,节选至此,原项目地址是:

http://autobook-zh.gf.cs.hit.edu.cn/html/autobook_toc.html

1. 简介
Autoconf、Automake 和 Libtool 这三个软件包可以让你的软件具有更好的可移植性并简化其构建的过程──尤其是在其他人的系统上。软件的可移植性和高效的构建系统是现代软件工程实践中非常重要的方面。现在,人们通常都希望软件能在不止一个平台上运行,因为硬件的限制有可能会改变对平台的选择,新的客户可能在使用不同的系统,而你所使用的操作系统提供商也可能在新版本中引入与之前不兼容的变化。此外,能够让软件构建过程更简单且不容易出错的工作也是非常有价值的。
Autoconf 这个工具可以在编译软件包前执行一系列测试,发现系统的特性,而你的源码可以去适应不同系统的差别。通过这种方式,可以让你的软件包具有更好的可移植性。
Automake 是产生 `Makefile' ──描述要构建什么──的工具,它遵从了很多的标准。Automake 极大地简化了描述软件包结构及追踪源码间依赖关系的过程。
Libtool 是编译器和连接器的命令行接口,利用它可以方便地产生具有可移植性的静态库和动态链接库。
1.1 本书涉及什么
本书是关于 Autoconf、Automake 和 Libtool 的教程,以下将它们简称为 GNU Autotools。GNU 手册分别对这三种工具进行详细的阐述,但迄今为止,还没有哪本指南描述过它们如何共同工作的。
近年来,这些工具得到了发展,对相关问题很了解的贡献者们做出了相应的设计,但是描述原理的文件却几乎没有。在阅读例子时,可能有人会问为什么 Autoconf 的宏使用以下的 shell 结构:

if test "x$var" = xbar; then
  echo yes 1>&5
fi
而不是更简单的

if [ $var = bar ]; then
  echo yes 1>&5
fi
诸如此类问题的答案都记录在了本书中。

1.2 本书不涉及什么
本书不是一本 Autoconf、Automake 或 Libtool 的权威参考,否则书中将充斥过时的信息。譬如本书并不对由 Autoconf 提供的每一个预先定义的宏进行描述。相反,本书将帮助你理解你所遇到的任何宏,并影响你处理软件可移植性和软件包创建的方式。以上工具的 GNU 手册可以作为参考书。
本书对相关概念只作简单介绍而不是详细地解释它们。本书会介绍如何编写 `Makefile' 和 Bourne shell 脚本,但是你必须参考其他工具书以便熟悉这些主题。

1.3 本书为谁而作
软件开发者,系统管理员和技术管理员很可能对关于 GNU Autotools 的书感兴趣。
软件开发者,特别是自由项目的开发者会认为了解如何使用这些工具是十分有价值的,因为 GNU Autotools 在自由软件社区中正变得越来越流行。室内项目的开发者如用这些工具也会受益非浅。
系统管理者能从这些工具的使用知识中受益。因为系统管理员的通常任务就是编译和安装使用 GNU Autotools 框架的软件包。偶尔,特性测试也会产生错误的结果而导致编译错误或程序异常。通常稍微 hacking 一下就可以编译软件包了,但是知道解决问题的正确方法能够帮助软件包的维护者。
最后,书中的讨论将使技术管理员对软件可移植性的复杂本质和创建大型项目的过程有进一步的了解。

1.4 本书是如何组织的
与任何一本好的教程一样,本书首先解释简单的概念,然后在这些基础知识上再进一步延伸至高层次的主题。
本书的第一部分将阐述这些工具的发展及其存在的原因。
第二部分则是本书的主要内容。首先解释 `Makefile' 和 configuration triplets 之类的概念。此后的章节将逐一介绍各个工具及如何使用它们来处理不同规模的项目。如果用 C和 C++ 语言编写的程序十分粗糙的话,该程序将不可移植。第 14 和 15 章将分别指导如何用 C 和 C++ 语言编写可移植程序。

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:Openbsd Upgrade Guide: 4.0 to 4.1

下一篇:(转载)Auto book 中文版(二)