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上的那些免費而豐富的代碼源。避免開發人員在工作中重復開發,提高了工作效率。
Copyright ©
Linux教程網 All Rights Reserved