码迷,mamicode.com
首页 > 系统相关 > 详细

在Linux上如何学习Objective-C

时间:2015-03-18 10:46:56      阅读:299      评论:0      收藏:0      [点我收藏+]

标签:object-c   oc学习   linux学习oc   

如果想学习OC却苦于没有MAC电脑的同学,可以试着以下方法来解决

我们利用GNUstep学习Objective-C


第一步:安装需要的软件和编译环境


sudo apt-get install gnustep
sudo apt-get install gnustep-devel

第二步:写第一个OC代码

#import <Foundation/Foundation.h>
int main (int argc, const char * argv[])
{
        NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
        NSLog (@"hello world");
        [pool drain];
        return 0;
}
/*
PS::
需要注意一点:Objective-C2.0 里 
将 
NSAutoreleasePool *pool = [NSAutoreleasePool alloc] init]; 和 [pool drain]; 
换成了 
“@autoreleasepool { }" , 
如果只是想在ubuntu里学习一下Objective-C编程, 
可以不写NSAutoreleasePool、 [pool drain];这两行代码,也不报错!
*/
第三步:编译

gcc `gnustep-config --objc-flags` -lgnustep-base hello.m -o hello

如果编译过程中出现以下错误

gcc: error trying to exec ‘cc1obj‘: execvp: No such file or directory


运行以下命令

sudo apt-get install gobjc

再次编译后运行

./hello

Executing the program will result in output similar to the following:

2009-09-15 10:48:39.772 prog1[12906] hello world


小技巧:

    每次编译总是要写一大串 

gcc `gnustep-config --objc-flags` -lgnustep-base .m源文件 -o 生成的可执行文件

    这里简化一下,写一个makefile,代码如下:

    

app:$(s)
        gcc `gnustep-config --objc-flags` $(s) -o app -lgnustep-base -lobjc 
clean: 
        rm *.d 
        rm app


每次执行都需要 

    

make s=.m源文件名 
//运行:
./app

//再次编译之前需要
make clean


本文出自 “开心编程_永无止境” 博客,请务必保留此出处http://happyliu.blog.51cto.com/501986/1621679

在Linux上如何学习Objective-C

标签:object-c   oc学习   linux学习oc   

原文地址:http://happyliu.blog.51cto.com/501986/1621679

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!