为多个 UNIX 平台编写软件
2008-11-13 08:29:12 来源:WEB开发网还要注意,进程间通信(Interprocess Communication,IPC)方法并未标准化。尽管大部分 UNIX 变体支持 SVR4 IPC,仍然注意并没有这方面的全面支持。通常应采用更为开放的 IPC 标准,如命名管道。
使用 GNU 自动工具
目前所讨论的方法的唯一问题在于,这些方法均要求进行大量的管理工作,以引入和组织不同的元素。它们要求能够访问需要支持的所有不同的平台;为了囊括所有的不同选项和备选方法,可能会大幅度增加开发时间。
GNU 自动工具概述
GNU 自动工具包是一个可产生配置规则和文件的框架集的系统。在新目标主机上运行配置脚本时,它会检查操作系统和基础代码的要求,并产生合适的头文件配置和构建环境(基于标准 Makefile),以用于在该主机上构建应用程序。
如果在计算机上构建过开放源代码应用程序,则可能会注意到以下序列:
$ ./configure
$ make
$ make install
configure 脚本是源代码分发的一部分。它使用一系列配置文件来确定进行构建所需的各种元素。自动工具系统的主要好处在于,它具有能确定在其上执行脚本的主机上的配置和组件可用性的脚本功能(通过与产生工作构建环境的源代码所需元素进行比较)。
由于自动工具系统依赖于特定平台的已预先知道的值的组合(例如,它知道目标类型、库和头文件可用性),并结合用于确定特定函数和头文件的可用性的运行时驱动信息,因此整个流程可以正常工作。
对于很多应用程序,您并不需要为了提高兼容性而对代码进行手动更改。另外,甚至不需要知道 configure 脚本的目标主机。我曾经开发过使用自动系统的应用程序,可成功在 HP-UX、Solaris(SPARC 和 x86)、Linux、Mac OS X 和 BSD 上进行编译和构建,而无需对代码进行任何更改。
更多精彩
赞助商链接