如果想学习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 编译多个文件使用 make s="t1.m t2.m t3.m"