在OS X上,Objective-C是否编译为本机代码或字节代码?
可以在Linux上编译Objective-C程序吗?
答案 0 :(得分:19)
Objective-C由GCC或LLVM [*]编译为本机代码。您可以在Linux上编译ObjC程序(通用GCC将很乐意支持ObjC,尽管它使用的运行时库与Apple中的任何一个不同)。对于类似于Cocoa的跨平台API(即从Cocoa派生而来),它可以在Linux上工作,并允许您在OS X和Linux之间移植一些代码,请查看GNUstep:http://www.gnustep.org
[*]实际上,LLVM在内部将Objective-C编译为内部bitcode表示,然后编译目标机器,所以答案可能是“两者”...
答案 1 :(得分:7)
它是原生的。
有GNUstep是用Objective-C编写的NeXT OpenStep规范的开源实现。它们对Cocoa API的实现不是直接匹配,因此无法直接编译而无需移植。
答案 2 :(得分:4)
是的,Objective-C编译成机器代码。
Objective-C编译器适用于Linux,但Cocoa是一种仅支持OS X的技术。我听说过一个名为GNUstep的开放式替代品,但对此并不了解。
答案 3 :(得分:2)
Objective-C是C的变体。它编译为本机代码。