Windows下利用GNU 開發Objective-C

來源:互聯網
上載者:User

除了在 Mac 系統上使用 Objective-C,你還可以在 Windows 上下載並安裝 GNUstep 和 Objective-C 環境,至於GNUstep是什麼東西,有什麼用處,這裡做個簡單的介紹:GNUstep就是提供類似Cocoa(蘋果OS的開發架構)的API和工具,目前支援GNU/Linux and GNU/HURD, Solaris, NetBSD, OpenBSD, FreeBSD, Darwin和Windows,免費使用的。這個項目使Objective C能在多數流行平台上開發和運行。有關詳細的介紹開始參考GNUstep的官方網站。
接下來我們就介紹詳細的安裝和使用的步驟。

下載 GNUstep

GNUstep 環境可通過 Windows 下的 MinGW 工具來使用,MinGW 是 GNU 編譯工具在 Windows 下的移植版本。安裝 GNUstep 包括安裝 MinGW 和 GNUstep,這兩者都可以通過這裡下載:http://www.gnustep.org/experience/Windows.html.

MinGW 包含 GNUstep System 和 GNUstep Core,必須先安裝這二者。

主要的四個軟體包:GNUstep MSYS System、GNUstep Core、GNUstep Devel、Cairo Backend。其中,前兩個軟體包是必須要安裝的,第三個軟體包是安裝一些開發工具,比如:gcc、g++等,所以如果是學習Objective C的話,這個包也是必須要安裝,第四個軟體包是安裝glib等庫,這個包安裝不安裝根據具體情況而定。

安裝 MinGW 和 GNUstep

上面所需的包下載完後,就可以開始安裝,圖形化的安裝嚮導介面,我們將安裝目錄指定為 C:\GNUstep

一旦 MinGW 安裝完畢,即可安裝 GNUstep Core 包

運行 GNUstep Shell

想開始使用 Objective-C 和 GNUstep, 需要啟動 GNUstep shell ,從開始菜單中的 GNUstep 中運行 Shell,如所示:

安裝完的測試

該 Shell 環境是一個最小化版本的 Linux 或 Unix 環境,如果你對此不熟悉,不怕,你也可以使用 Windows 下你熟悉的編輯器。

在“開始”菜單中“所有程式”下可以找到“GNUstep” -> “shell”,就會出console視窗,可以試試一些Linux命令(ls,cd,mkdir等)。

編寫一個Objective C代碼進行編譯運行測試。在這裡就用經典的“hello world”來說明:
#import <Foundation/Foundation.h>
int main (int argc, const char *argv[]) {
    NSAutoreleasePool *pool=[[NSAutoreleasePool alloc] init];
    NSLog(@"Hello World!");
    [pool drain];
    return 0;
}

    在Windows環境下用文字編輯器(Editplus,UE等),編寫上述代碼,並且儲存到GNUstep安裝目錄下的/home下,取名為helloworld.m。

   (注意如果gnu 安裝在c盤,就儲存在其他地方,在shell 裡cd 那就ok,否則 總是出現No such file or directory)在GNUstep的console視窗命令列下,

    1、cd /home

    2、gcc -o helloworld helloworld.m -I/GNUstep/System/Library/Headers -fconstant-string-class=NSConstantString -L/GNUstep/System/Library/Libraries -lobjc -lgnustep-base

    3、運行helloworld.exe

說明:第二步中的一些參 數明說,如果熟悉Linux/Unix下C/C++編譯的話,上述參數應該很熟悉,-I表示標頭檔尋找的路徑,-L表示庫檔案尋找路徑,-l表示需要連結 的庫檔案。但是,-fconstant-string-class=NSConstantString  對於這個參數可能比較陌生,這個參數主要是指定常量字串所使用的class。  

 

改進:由於在GNUstep的視窗下不能複製,粘貼,手動打字容易出錯,所以,可以寫個shell指令碼,取名為test.sh,內容如下:

gcc -o "$1" "$2" -I/GNUstep/System/Library/Headers -fconstant-string-class=NSConstantString -L/GNUstep/System/Library/Libraries -lobjc -lgnustep-base

然後和上面的一樣,在GNUstep的console視窗命令列下  

    1、cd /home

    2、sh test.sh  helloworld  helloworld.m

    3、運行helloworld.exe

說明:test.sh中的$1 和 $2分別表示擷取執行test.sh時傳進來的第1個和第2個參數,然後通過sh test.sh  helloworld helloworld.m就是執行test.sh指令碼並傳入兩個參數,採用傳參數的目的是讓這個test.sh成為一個編譯的模板,這樣每次只要傳不同的參數就可以編譯運行。

    helloworld.exe編譯並運行成功的話,說明windows下Objective C開發環境就搭建好了,這樣就可以開始以廉價方式的學習Objective C


相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.