Chinaunix首页 | 论坛 | 博客
  • 博客访问: 383211
  • 博文数量: 102
  • 博客积分: 1395
  • 博客等级: 中尉
  • 技术积分: 1050
  • 用 户 组: 普通用户
  • 注册时间: 2012-11-05 18:09
文章分类

全部博文(102)

文章存档

2013年(25)

2012年(77)

分类: iOS平台

2013-03-30 10:19:16

最近看了很多文章,互联网发达今天,想找一篇对的文章还真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  

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 = LogTest 
LogTest_OBJC_FILES = source.m 

include $(GNUSTEP_MAKEFILES)/tool.make 

保存 

然后,直接运行 

$make 
阅读(2634) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~