2012年1月12日星期四

使用GNUstep在Windows上搭建Objective

具体搭建步骤可参见donhao的:

一起来学Objective-C(1)——Window下开发环境安装和Hello World

http://blog.csdn.net/donhao/article/details/6731781


问题描述

但是我在下载、安装完毕,编写Hello World时遇到错误了,这对刚接触Objective-C的我是多么大的打击啊!

Objective-C代码,文件名main.m(m是扩展名):

#import <Foundation/Foundation.h>int main(int arvc, char* argv[]) {	NSLog(@"Hello world!http://ju2ender.cnblogs.com");	return 0;}

在shell中输入如下命令出错:

gcc -o main main.m -I/GNUstep/System/Library/Headers/ -fconstant-string-class=NSConstantString -L/GNUstep/System/Library/Libraries -lobjc -lgnustep-base

说现在对native-objc-exceptions的设置与gnustep-base不匹配,native-objc-exceptions、gnustep-base是什么东东?又要在哪里设置呢?

遇到问题我们一定不要灰心、害怕,要坚信没有解决不了的问题!


问题解决

我们要在C:\GNUstep\GNUstep\System\Library\Headers\GNUstepBase(请根据你的安装路径自行修改)中找到GSConfig.h文件:

用记事本、EditPlus、Notepad++等等打开,找到BASE_NATIVE_OBJC_EXCEPTIONS(没错,这就是上面的native-objc-exceptions),将其键值由1改为0:

保存并关闭。这时再次在shell中输入:

gcc -o main main.m -I/GNUstep/System/Library/Headers/ -fconstant-string-class=NSConstantString -L/GNUstep/System/Library/Libraries -lobjc -lgnustep-base

没有看到错误提示,哈哈,好像成功了,再输入ls命令看到生成了main.exe,打开home目录也确实生成了:

没错,我们看到又出错了!我们执行main.exe,它却说命令没有找到。。。

没事儿,很好解决,我们在前面加上./,如下:

./main.exe

这样就成功了!如上图,输入./main也是可行的。

作者:Ju2ender
出处:http://ju2ender.cnblogs.com/
本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

为懒人准备的回复方式,点击下面的按钮回复(请勿重复点击,如果你有时间,建议还是写些评论吧)
使用GNUstep在Windows上搭建Objective

TAG: