安装
上网搜了搜,这方面的资料真是不少,必备的东东是 GNUstep Developer Tools,可以参考这个链接 (http://www.gnustep.org/experience/Windows.html),安装很简单,按照顺序 GNUstep System、GNUstep Core、GNUstep Developer 安装即可,过程就不表述了。
安装完成后,我们可以用“程序 -> GNUstep -> Shell” 来启动一个模拟 UNIX 控制台,在这下面可以完成开发、编译、执行等工作。
开发
首先我们来写一个 HelloWorld,简单起见,我们在 C 盘根目录下创建 HelloWorld.m 文件,并保存,代码如下:
#import <Foundation/Foundation.h>
int main (int argc, const char *argv[])
{
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
NSLog(@"Hello World!");
[pool drain];
return 0;
}
注:关于用什么工具来编写代码,由于我也是初次使用,并没有特别好的工具推荐,我自己使的是 UltraEdit。
编译
由于 HelloWorld.m 是在 C 盘根目录下,所以首先我们将路径切换到 C 盘根目录:
$cd C:\
注:cd 这种方式同样适用于切换到任意驱动器或任意子目录下,路径的组织结构与 windows 没有区别,不区分大小写。
编译成目标码
gcc -fconstant-string-class=NSConstantString -c HelloWorld.m -I /GNUstep/System/Library/Headers
执行上面的命令后,控制台不会有任何输出,这是正确的,否则你需要去检查原因了。同时在 C 盘根目录下会生成一个 HelloWorld.o 的目标文件,在下一步,我们将用它来编译成可执行文件。
编译成可执行文件
gcc -o HelloWorld HelloWorld.o -L /GNUstep/System/Library/Libraries/ -lobjc -lgnustep-base
C 盘根目录下会生成 HelloWorld.exe
执行
我们可以直接在 Windows 控制台下执行 HelloWorld.exe,也可以在 Shell 窗口中执行:
在 Shell 窗口输入:
./HelloWorld.exe
输出如下:
2011-09-23 13:22:42.828 helloworld[5484] Hello World!
关于工作路径
我们做开发时,项目不可能放在 C 盘根目录下,一般都是有组织的,那么如何编译这类的文件呢?其实方法很简单,使用 cd 命令,进入到 .m 所在的目录下,然后执行编译。
Make
上面的编译过程很繁琐,稍有不慎就可能输入错误,造成编译失败,其实还有一个更简单的方法,就是建立一个 make 文件,对于 GNUstep 来说,make 文件名必须是“GNUmakefile”,内容如下:
include $(GNUSTEP_MAKEFILES)/common.make
TOOL_NAME=HelloWorld<strong>
</strong>HelloWorld_OBJC_FILES=HelloWorld.m
include $(GNUSTEP_MAKEFILES)/tool.make
HelloWorld 关键字部分为可替换为实际内容。GNUmakefile 文件要求与 .m 文件在同一目录下。
上网搜了搜,这方面的资料真是不少,必备的东东是 GNUstep Developer Tools,可以参考这个链接 (http://www.gnustep.org/experience/Windows.html),安装很简单,按照顺序 GNUstep System、GNUstep Core、GNUstep Developer 安装即可,过程就不表述了。
安装完成后,我们可以用“程序 -> GNUstep -> Shell” 来启动一个模拟 UNIX 控制台,在这下面可以完成开发、编译、执行等工作。
开发
首先我们来写一个 HelloWorld,简单起见,我们在 C 盘根目录下创建 HelloWorld.m 文件,并保存,代码如下:
#import <Foundation/Foundation.h>
int main (int argc, const char *argv[])
{
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
NSLog(@"Hello World!");
[pool drain];
return 0;
}
注:关于用什么工具来编写代码,由于我也是初次使用,并没有特别好的工具推荐,我自己使的是 UltraEdit。
编译
由于 HelloWorld.m 是在 C 盘根目录下,所以首先我们将路径切换到 C 盘根目录:
$cd C:\
注:cd 这种方式同样适用于切换到任意驱动器或任意子目录下,路径的组织结构与 windows 没有区别,不区分大小写。
编译成目标码
gcc -fconstant-string-class=NSConstantString -c HelloWorld.m -I /GNUstep/System/Library/Headers
执行上面的命令后,控制台不会有任何输出,这是正确的,否则你需要去检查原因了。同时在 C 盘根目录下会生成一个 HelloWorld.o 的目标文件,在下一步,我们将用它来编译成可执行文件。
编译成可执行文件
gcc -o HelloWorld HelloWorld.o -L /GNUstep/System/Library/Libraries/ -lobjc -lgnustep-base
C 盘根目录下会生成 HelloWorld.exe
执行
我们可以直接在 Windows 控制台下执行 HelloWorld.exe,也可以在 Shell 窗口中执行:
在 Shell 窗口输入:
./HelloWorld.exe
输出如下:
2011-09-23 13:22:42.828 helloworld[5484] Hello World!
关于工作路径
我们做开发时,项目不可能放在 C 盘根目录下,一般都是有组织的,那么如何编译这类的文件呢?其实方法很简单,使用 cd 命令,进入到 .m 所在的目录下,然后执行编译。
Make
上面的编译过程很繁琐,稍有不慎就可能输入错误,造成编译失败,其实还有一个更简单的方法,就是建立一个 make 文件,对于 GNUstep 来说,make 文件名必须是“GNUmakefile”,内容如下:
include $(GNUSTEP_MAKEFILES)/common.make
TOOL_NAME=HelloWorld<strong>
</strong>HelloWorld_OBJC_FILES=HelloWorld.m
include $(GNUSTEP_MAKEFILES)/tool.make
HelloWorld 关键字部分为可替换为实际内容。GNUmakefile 文件要求与 .m 文件在同一目录下。
make 的执行很简单,进入 “GNUmakefile” 所在的目录,在 Shell 窗口中执行 “make” 即可。这会在 “GNUmakefile” 所在目录下生成一个 obj 目录,obj 下包含了可执行文件和目标文件等。