跨平台開發Cygwin MinGW

2021-07-25 07:49:57 字數 2548 閱讀 9104

**linux寶庫:

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公司(的產品,它提供了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等。 

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為例( 

1) 雙擊「setup.exe」圖示; 

2) 「next」進行下一步; 

3) 選擇安裝途徑: 由internet安裝; 

由本地目錄下安裝; 

4) 我們選擇從internet上直接安裝; 

5) 選擇安裝的根目錄,預設目錄為:c:/cygwin;當然,也可修改為c:program filescygwin 

6) 預設的文字檔案型別為unix,安裝所有檔案。 

7) 按「next」進行下一步,安裝路徑中一般不包括空格,安裝檔案位置:c:documents and settingslingli桌面 

8) internet連線方式 

直接連線;使用ie5設定;使用http/ftp**。 

10) downloading setup.ini connecting. 

3 在windows下執行gnu程式的工具——mingw 

在介紹mingw之前,有必要先介紹一下gnu,拼讀時g是不發音的。在字典中的含義是非洲大羚羊,我們可以常常看到右邊這個非常個性化的羊頭圖1,想必很多人已經非常熟悉。象徵gnu那種追求自由的精神,gnu其實是gnu'snotunix的縮寫,它表示gnu系統與unix不同,但是它是與unix相容的乙個軟體系統。由richardstallman建立,於2023年開始逐漸累積系統構件,於2023年發布"完整gnu系統"的第乙個測試版本。與unix不同的是,gnu不需要購買,所有需要它的人都可以免費獲得,這也是設計者的初衷,自由軟體拷貝,自由軟體共享。 

圖13.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上的那些免費而豐富的**源。避免開發人員在工作中重複開發,提高了工作效率。 

deviceone 跨平台開發

lz最近很忙 好久沒更新blog了好久沒搞android了 最近一直在學習js語言和跨平台開發工具那麼多 lz用的deviceone 說實話 真的很快速 官方封裝的各種框架底層 用起來簡單的不得了 簡單直接 粗暴 有效果 也有各位大神封裝的元件 唯一一點感覺不大爽的是說明文件寫的並不詳細 但基本上有...

跨平台開發silverlight

silverlight是能跨平台的.個人感覺sl和flash都差不多.要是比 絢 比 酷 sl站不到上風.只能在功能上比.sl和資料的結合是很不錯的.能呼叫很多的服務.但是用來做服務的後台檔案大多都受到伺服器平台的限制.之前做的好多demo都是因為沒有的方host導致我的demo都無法放到網上.近日...

跨平台移動應用開發

來自於iotashan的一篇blog 有一定的參考價值。關於如何選擇移動平台開發工具,作者提出了四點意見 must perform,even last gen phones 支援最新的手機是必須的,而且還必須支援最新版sdk must support at least iphone android,...