为四川人民祈祷! www.onefoundation.cn

开始Objective-C编译

首先需要在OS X上安装Xcode,gcc也会被安装上

进入Terminal以后,我们可以执行的命令有gcc和g++,我们知道gcc用来编译c程序,g++用来编译c++程序

按照常规的想法,GCC会单独提供命令来编译objc程序,因为我们知道,Objective-C程序的扩展名是.m,Objective-C++程序的扩展名是.mm。但是GCC没有这么做,我们仍然使用gcc命令来编译objc程序

不过单纯使用gcc命令是不行的,还是需要一些参数

-fgnu-runtime是为objc准备的参数,由于objc在实现了很多动态的特性,使用了很多的运行时绑定,所以运行的时候需要有一个runtime,据说在新的版本中,runtime还支持GC

-ObjC 或者 -ObjC++ 这在标准的GCC中是不存在的,是Apple对GCC的扩展,用这个命令可以轻松的编译ObjC程序

我们用来编译main.m的命令就是gcc -ObjC -c main.m

上面两个选项当然只要用一个就可以了,更多的信息可以察看Xcode自带的GCC文档
http://developer.apple.com/documentation/DeveloperTools/gcc-4.0.1/gcc/index.html
file:///Developer/ADC%20Reference%20Library/documentation/DeveloperTools /gcc-4.0.1/gcc/index.html

注意:如果不加-c选项,gcc会帮我们link程序,但是link的步骤会出错

由此可以看出,objc对c的扩展没有c++那么夸张,就像The Objective-C Programming Language中说的一样: "Moreover, Objective-C is a simple language. Its syntax is small, unambiguous, and easy to learn. "

察看各种reference,我们可以看到 .h的文件,但是找不到熟悉的.lib或者.a文件,objc使用framework这样的概念,如果我们要link一个使用了Foundation的源程序,就要加上参数-framework Foundation
tags: objc   
by kernel1983
Comments »
Leave a Comment:
code:684