這是一種權宜之計,在沒有Mac OS X的情況下,使用這套方案可以先行體會一下Objective-C。
如果玩下來覺得感覺不錯,想深入發展,還是整台Mac吧。
一:編譯環境安裝GNUStep
www.gnustep.org網站下載以下三個包,按順序安裝
1. gnustep-msys-system-0.30.0-setup.exe
2. gnustep-core-0.31.0-setup.exe
3. gnustep-devel-1.4.0-setup.exe
二:運行Shell
開始 -> 所有程序 -> GNUstep -> Shell
運行起來一個MINGW32窗口。"/"根目錄就是"GNUstep安裝目錄\msys\1.0\"目錄。
缺省進入的是"/home/用戶名/"目錄。既"~"目錄。
三:編譯、運行
在Shell中利用vim編輯一個hello.m
1 #import <Foundation/Foundation.H> 2 3 int main(int argc, const char *argv[]) 4 { 5 NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; 6 7 NSLog(@"Hello, World!"); 8 9 [pool drain]; 10 11 return 0; 12 }
保存后在Shell命令行中執行以下命令,得到hello.o
gcc -fconstant-string-class=NSConstantString -c hello.m -I /GNUstep/System/Library/Headers
再執行以下命令,得到hello.exe
gcc -o hello hello.o -L /GNUstep/System/Library/Libraries/ -lobjc -lgnustep-base
好了,運行一下看看結果吧
./hello
2015-03-16 10:29:11.019 hello[4172] Hello, World!
OK,接下來,配置UltraEdit,讓其成為我們Windows下的IDE吧。
這里使用的UltraEdit是21.10.0.1032版本,其它版本大同小異,可以參考
一:語法高亮
打開 菜單 - - Advanced - Configuration - Editor Display - Syntax Highlighting - "Full directory path for wordfiles:"
將objc-highlight.uew放到上圖中的目錄中就可以了。
二:自動補全
打開 菜單 - Advanced - Configuration - Editor - Word Wrap/Tab Settings - "Auto-complete file:"
使用objc-auto.stx文件就可以了。
做完以上兩步,看看效果:
三:接下來的配置,可以實現在UltraEdit內編譯、連接、運行
打開 菜單 - Advanced - Tool Configuration 對話框
Command 標簽頁插入4條命令:
1)Build objc single
這是編譯當前打開的文件
在Command line:輸入
gcc -fconstant-string-class=NSConstantString -c %n%e -I C:\GNUstep\GNUstep\System\Library\Headers
注意上面的GNUstep的安裝路徑。
2)Build objc all
這是編譯當前目錄下的所有文件
在Command line:輸入
gcc -fconstant-string-class=NSConstantString -c -Wall *.m -I C:\GNUstep\GNUstep\System\Library\Headers
3)Link objc all
這是連接當前目錄下的所有o文件,生成main.exe
在Command line:輸入
gcc -o main -Wall *.o -L C:\GNUstep\GNUstep\System\Library\Libraries\ -lobjc -lgnustep-base
4)Run objc main
這是運行main.exe
在Command line:輸入
main.exe
以上4條命令的Working directory:都設置成%p,即當前目錄。
Options 標簽頁"Save active file"選中:
Output 標簽頁如下設置:
照以上全部設置好以后,Advanced菜單會多以下命令:
編譯、連接、運行的結果會在Output Window輸出
好了,到這里所有的配置都做好了,快點開始寫程序吧。