关注iphone开发、资讯、软件

解决了在Windows上使用GNUstep搭建Objective-C开发环境的问题

具体搭建步骤可参见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

C:/GNUstep/GNUstep/System/Library/Headers/Foundation/NSException.h:44:2: error:
#error The current setting for native-objc-exceptions does not match that of gnu
step-base ... please correct this.

说现在对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也是可行的。

原文:http://www.cnblogs.com/ju2ender/archive/2012/01/12/2321058.html

我也来参与讨论

你还可以输入600/600个字符 发表评论
称呼: (必填) 登录 | 开通博客
邮箱: (选填) 你的邮箱地址不会被公开
网站: (选填)
验证码: (必填)
看不清换一张 看不清楚换一张