当前位置:Linux教程 - 基础知识 - 基础知识 - 跨平台开发

基础知识 - 跨平台开发

跨平台开发
2004-04-23 15:18 pm
来自:Linux文档
现载:Www.8s8s.coM
地址:无名

1 引言
今天程序开发人员面临的最大问题就是如何使他们的应用程序支持各种不同的平台,如何使用户能够在不同的平台下不作任何修改地就能使用他们的应用程序。众所周知,Linux操作系统和其它基于UNIX的操作系统一直是国际上使用广泛又非常重要的OS(Operating system)。但在中国,微软的Windows OS却占领着巨大市场,如Windows95/98、Windows2000、Windows me等OS。
那么,基于Windows OS工作的程序开发人员在实际工作中,能否重新利用其它OS上的那些免费的代码资源呢?例如像Linux那样优秀而自由的丰富代码源。
本文针对这个问题,提出了两种在Windows OS下如何运行UNIX程序和GNU程序的途径,以避免开发人员在工作中重复开发,以提高工作效率。

2 在WINDOWS下运行UNIX程序的工具——Cygwin
UNIX自20世纪八十年代就已经成为学术界和研究机构所采用的主要操作系统,并开始扩展到商业界,当时就连大名鼎鼎的IBM PC都可跑UNIX。
2.1 什么是Cygwin?
Cygwin是Cygwin公司(http://cygwin.com/)的产品,它提供了Windows操作系统下的一个UNIX环境,它可以帮助程序开发人员把应用程序从UNIX/Linux移植到Windows平台,是一个功能强大的工具集。
Cygwin由两部分组成:
(1)cygwin1.dll:它作为UNIX的一个仿真层,提供UNIX API功能;
(2)一组工具:它的功能是负责创建一个UNIX或Linux的外观界面。
Cygwin动态链接库,即cygwin1.dll可以在Windows CE以外,Windows 95以上的所有非beta版本的Windows OS下工作,如Windows 98,Windows 2000等。
目前该软件的最新版本的Cygwin是1.1.x或1.3.x.可以从cygwin公司的网站上直接下载(http://cygwin.com/setup.exe)
2.2 Cygwin的功能
网络管理人员通过Cygwin可以很容易地远程登录到任何一台PC机,在UNIX/Linux外壳(shell)下解决问题。在任何一台Windows OS计算机上运行外壳(shell)脚本命令。高级外壳脚本命令可以用标准shell、sed和awk等创建。标准Windows命令行工具甚至可以与UNIX/Linux外壳脚本环境共同管理Windows操作系统。
2.3 安装Cywin
我们以Cygwin Net Release Setup.exe Version 2.125.2.10为例(http://sources.redhat.com/cygwin)
1) 双击“setup.exe”图标;
2) “Next”进行下一步;
3) 选择安装途径: 由Internet安装;
从Internet上先下载;
由本地目录下安装;
4) 我们选择从Internet上直接安装;
5) 选择安装的根目录,默认目录为:C:/cygwin;当然,也可修改为C:Program FilesCygwin
6) 缺省的文本文件类型为Unix,安装所有文件。
7) 按“Next”进行下一步,安装路径中一般不包括空格,安装文件位置:C:Documents and Settingslingli桌面
8) Internet连接方式
直接连接;使用IE5设置;使用HTTP/FTP代理。
9) 选择下载站点:ftp/http://cygwin.lirex.net
10) Downloading setup.ini connecting.
3 在WINDOWS下运行GNU程序的工具——MinGW

在介绍MinGW之前,有必要先介绍一下GNU,拼读时G是不发音的。在字典中的含义是非洲大羚羊,我们可以常常看到右边这个非常个性化的羊头图1,想必很多人已经非常熟悉。象征GNU那种追求自由的精神,GNU其实是Gnu'sNotUnix的缩写,它表示GNU系统与Unix不同,但是它是与UNIX兼容的一个软件系统。由RichardStallman创建,于1984年开始逐渐累积系统构件,于1996年发布"完整GNU系统"的第一个测试版本。与UNIX不同的是,GNU不需要购买,所有需要它的人都可以免费获得,这也是设计者的初衷,自由软件拷贝,自由软件共享。

图1

3.1 什么是MinGW?
MinGW,即Minimalist GNU For Windows。它是一些头文件和端口库的集合,该集合允许人们在没有第三方动态链接库的情况下使用GCC(GNU Compiler C)产生Windows32程序。
该工具集的当前构成如图2:

在基本层,MinGW是一组包含文件和端口库,其功能是允许控制台模式的程序使用微软的标准C运行时间库(MSVCRT.DLL),该库在所有的NT OS上有效,在所有的Windows 95发行版以上的Windows OS有效,使用基本运行时间,你可以使用GCC写控制台模式的符合美国标准化组织(ANSI)程序,可以使用微软提供的C运行时间扩展。该功能是Windows32 API不具备的。下一个组成部分是w32api包,它是一组可以使用Windows32 API的包含文件和端口库。与基本运行时间相结合,就可以有充分的权利既使用CRT(C Runtime)又使用Windows32 API功能。
4 结论
本文讨论了如何在WINDOWS下重复利用UNIX代码程序和GNU代码程序的问题,提出了两种在Windows OS下如何运行UNIX程序和GNU程序的途径。这意味着,基于Windows OS工作的程序开发人员在实际工作中,将能重复利用其它OS上的那些免费而丰富的代码源。避免开发人员在工作中重复开发,提高了工作效率。