最近使用Objective-C越順手,想在Ubuntu環境中也能寫,
以及使用Mac/iOS 的Foundation函式,經參考 GNUstep on Linux 這篇文章,記錄以下心得。
環境安裝 Ubuntu 10.10:
- sudo apt-get install gobjc
- sudo apt-get install gnustep
- sudo apt-get install gnustep-devel
範例:
hello.h, hello.m and main.m
#include <foundation foundation.h> @interface Hello: NSObject { } - (void) show; @end @implementation Hello - (id) init { self = [super init]; NSLog(@"%s", __FUNCTION__); return self; } - (void) show { NSLog(@"Hello GNUObjc with GNUstep"); } - (void) dealloc { NSLog(@"%s", __FUNCTION__); [super dealloc]; } @end int main(int argc, char **argv) { NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; Hello *obj = [[Hello alloc] init]; [obj show]; [obj release]; [pool drain]; return 0; } |
Makefile
STEPFLAGS= $(shell gnustep-config --objc-flags) -lgnustep-base OBJCFLAGS= -g $(STEPFLAGS) -O OBJCFILES= hello.m main.m OBJS = $(OBJCFILES:.m=.o) .SUFFIXES: .m .o all: hello .m.o: $(CC) $(OBJCFLAGS) -c $< hello: $(OBJS) $(CC) -o $@ $^ -lobjc -lgnustep-base run: hello ./$^ clean: rm -f *.o *.d hello |
執行結果:
2011-07-28 21:53:25.540 hello[12151] -[Hello init] 2011-07-28 21:53:25.541 hello[12151] Hello GNUObjc with GNUstep 2011-07-28 21:53:25.541 hello[12151] -[Hello dealloc] |
請由此下載範例源始碼。
(ps: 圖片來源為http://wiki.gnustep.org 所有)
沒有留言:
張貼留言