在windows环境下安装GNUstep,运行objective-c程序,今天试了一下,记录一下操作步骤,
1、登陆http://ftpmain.gnustep.org/pub/gnustep/binaries/windows/网站
2、下载一下三个文件
gnustep-msys-system-0.30.0-setup.exe
gnustep-core-0.31.0-setup.exe
gnustep-devel-1.4.0-setup.exe
3、依次安装上述文件,注意后面两个最好安装在前面同目录下,我试过不在同目录下,结果连gcc也找不到,也不清楚问题出处;
4、安装完成之后,即可运行shell,测试一个例子
#import <Foundation/Foundation.h> int main(int argc,const char *argv[]) { NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; NSLog (@"hello world"); [pool drain]; return 0; }
编译:gcc -o hello hello.m -I/GNUstep/System/Library/Headers -fconstant-string-class=NSConstantString -L/GNUstep/System/Library/Libraries -lobjc -lgnustep-base
运行即可得到结果。
给出一个网上提供的makefile模板(注意,如果编译的时候有@try @catch @finally的特性时,请附加下面的-fobjc-exceptions标识)
CC = gcc CFLAGS = -fconstant-string-class=NSConstantString -fobjc-exceptions LFLAGS = -lobjc -lgnustep-base LIB_HDRS = /GNUstep/System/Library/Headers LIB_LIBS = /GNUstep/System/Library/Libraries BIN = hello.exe all : $(BIN) $(BIN) : hello.o $(CC) -o $@ $< -L$(LIB_LIBS) $(LFLAGS) hello.o : hello.m $(CC) -I$(LIB_HDRS) $(CFLAGS) -c $< clean: rm -f $(BIN) *.o
没有问题,也算踏出objective-c的第一步了。
补充:在shell命令下看到的目录,不知在windows环境下的位置,我将文件安装在E:/GNUstep目录下,我们的目录位置在E:\GNUstep\msys\1.0\home\下