作为初学者可能还没来得及买MAC,但是同样可以在windows中学习Object-C。GNUStep是windows环境中Object-C的编译器,下面详细描述了GNUStep开发工具的安装,和编写一个简单的Object-C程序。
首先访问http://www.gnustep.org/experience/Windows.html
将这4个文件下载到本地,然后按照从上至下的顺序安装。默认的安装路径是c:\GNUStep,也可以改变安装路径。
4个文件都安装结束后,在windows的开始菜单中寻找到GNUStep=>shell。运行这个程序后出现一个黑色命令行窗口,这是一个模拟的linux运行环境,在里面可以执行ls,rm等linux中的命令。以后的开发工作主要是在这里进行(确实很麻烦,不过下面介绍了一种较为方面的方式)。
假设你的GNUStep安装在c:\GNUStep里。c:\GNUStep\msys\1.0\home就是在linux环境里的home目录。使用cd或cd~可以进入到这个目录中。
在windows中使用你喜欢的文本编辑器(如Notepad++)创建一个helloworld.m文件,Object-C文件的扩展名是.m。文件内容如下
#import <Foundation/Foundation.h> int main(char argc, char* argv[]) { NSLog(@"hello world"); return 0; }
将此文件保存在c:\GNUStep\msys\1.0\home\<administrator>
<administrator>是当前登录windows的用户名
编译HelloWorld
gcc -o helloworld helloworld.m \ -fconstant-string-class=NSConstantString \ -I /GNUstep/System/Library/Headers/ \ -L /GNUstep/System/Library/Libraries/ \ -lobjc \ -lgnustep-base
上面编译helloworld.m的命令。
编译时可能会出现下面错误
请在C:\GNUstep\GNUstep\System\Library\Headers\GNUstepBase目录中找到GSConfig.h文件,找到BASE_NATIVE_OBJC_EXCEPTIONS变量,将变量值由1改成0,然后重新编译即可。
如果编译没有错误,在当前目录里会生成helloworld.exe文件,输入下面命令运行
./helloworld.exe
输出结果如下