除了在 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