为多个 UNIX 平台编写软件
2008-11-13 08:29:12 来源:WEB开发网核心提示: 评估手边的任务第一个任务是确定将要移植的应用程序的复杂性,典型的应用程序包含很多不同的元素,为多个 UNIX 平台编写软件(3),需要确定哪些元素需要进行重新开发,哪些需要加以调整, 可以通过使用免费软件工具来简化环境和相关过程,如 gcc、bison 和 flex,以兼容更多平台, 需要
评估手边的任务
第一个任务是确定将要移植的应用程序的复杂性。典型的应用程序包含很多不同的元素。需要确定哪些元素需要进行重新开发,哪些需要加以调整,以兼容更多平台。
需要调查研究的元素包括:
核心 C 代码——大部分 C 代码都具有跨平台兼容性。C 源代码中的大部分不兼容现象都与不同元素所依赖的库和头文件有关。
所需的库——不同的 UNIX 变体包括一系列不同的库和工具,一些甚至可能使用第三方库作为标准库。
构建环境——Makefile 是大部分应用程序的标准构建环境。
所需的工具——某些应用程序可能需要在希望在其中进行构建的所有平台内都具有特定工具,如 yacc、lex、rpcgen 和其他工具。
当然,大部分 C 代码都具有平台兼容性。现在的大部分 C 编译器都基于相关标准,因此对代码进行编译不存在问题。相反,进行移植时出现的大部分问题都与库、头文件和构建环境中的限制相关。
常见的冲突区域
在这一部分,我们将讨论一些与处理头文件、库、构建工具和环境相关的重要问题。
构建工具和环境
移植过程的核心元素是可用的构建工具和环境。如果使用标准 Makefile,则这个过程要容易得多,但仍然需要考虑一些关键的差异。
例如,需要对提供的 C 编译器、C 预处理程序和工具(yacc、lex 和其他工具)进行标识。还需要考虑命令行选项和不同工具的过程差异。
例如,大部分 UNIX 变体都提供 cc 作为 C 编译器,提供了独立的 C 预处理程序 cpp。不过,有些人可能喜欢使用 cc 的命令行选项 -E 来运行预处理程序。
可以通过使用免费软件工具来简化环境和相关过程,如 gcc、bison 和 flex,但同样要注意相关限制和差异。
更多精彩
赞助商链接