在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\下