在ubuntu上安装 GNUstep 编译objective c 实现hello world 程序

Posted by bower on November 15, 2010
apple/Mac, cocoa

分享给你的朋友->bookmark bookmark bookmark bookmark bookmark bookmark bookmark bookmark bookmark

最近看了很多文章,互联网发达今天,想找一篇对的文章还真TM难, 再次BS一下,那些不知所云就转贴的竖子,本来以为很简单的 objective c 在 gcc上的编译问题,因为gcc很本就可以支持objective c 的,花了两天的时间搞定, 不得不再次感叹互联网的强大

gcc是可以,但是不用GNUstep 而写obj c 是没有什么意义,如果用GNUstep 那gcc老的方法就会有问题,最烦人的就是

Foundation/Foundation.h: No such file or directory

这个错误

闲言少表,来点直接的

1安装 / install GNUstep on ubuntu

下面列出来的包是安装GNUstep环境所必须的:

  • build-essential
  • gobjc
  • gobjc++
  • gnustep-devel

用 apt-get install 就可以搞定

本人怕麻烦就直接

sudo apt-get install gnustep*

这样会安装所有的 GNUstep的东西,所谓一劳永逸

2 hello world

这个是远近闻名的程序

#import <Foundation/Foundation.h>

int main(int argc, const char *argv[]) {
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
NSLog(@”Hello world\n”);
[pool drain];
return 0;
}

保存为 hello.m

这个时候你尝试用gcc 去编译是会出错的

gcc -o hello hello.m

fatal error: Foundation/Foundation.h: No such file or directory

因为你用了foundation的库,gcc不知道

3 make

我们现在要用GNUstep的方式即makefile的方式来编译,GNUstep已经给我们做好了编译脚本在: /usr/share/GNUstep/Makefiles/GNUstep.sh

我们现在就要用到它,先做一个环境变量 就叫 GNUSTEP_MAKEFILES 当然名字随你起

打开 .bashrc(如果不知道在哪,就去找找)

$ cd

$ vim .bashrc

在最下面添加

#set GNUstep
GNUSTEP_MAKEFILES=/usr/share/GNUstep.sh
export GNUSTEP_MAKEFILES
source /usr/share/GNUstep/Makefiles/GNUstep.sh

然后回到hello.m的目录

创建文件GNUmakefile 必须叫这名

添加

include $(GNUSTEP_MAKEFILES)/common.make

TOOL_NAME = hello
LogTest_OBJC_FILES = hello.m

include $(GNUSTEP_MAKEFILES)/tool.make

保存

然后,直接运行

$make

如果顺利通过,就会产生一个obj目录

$cd obj

$./hello


分享到:人人网开心网腾讯微博新浪微博豆瓣分享腾讯空间百度搜藏腾讯书签

分享给你的朋友->bookmark bookmark bookmark bookmark bookmark bookmark bookmark bookmark bookmark

Leave a Reply

Your email address will not be published. Required fields are marked *

*
To prove you're a person (not a spam script), type the security word shown in the picture. Click on the picture to hear an audio file of the word.
Click to hear an audio file of the anti-spam word