10

在 OS X 上,Objective-C 是编译为本机代码还是字节码?

可以在 Linux 上编译 Objective-C 程序吗?

4

4 回答 4

19

Objective-C 由 GCC 或 LLVM[*] 编译为本机代码。您可以在 Linux 上编译 ObjC 程序(通用 GCC 很乐意支持 ObjC,尽管它使用的运行时库与 Apple 的任何一个都不同)。对于类似于 Cocoa(即源自 Cocoa)的跨平台 API,它可以在 Linux 上愉快地工作并让您在 OS X 和 Linux 之间移植一些代码,请查看 GNUstep:http ://www.gnustep.org

[*]事实上,LLVM 在内部将 Objective-C 编译为内部位码表示,然后为目标机器编码,所以答案可能是“两者”……</p>

于 2008-10-05T20:40:25.950 回答
7

是原生的。

GNUstep是用 Objective-C 编写的 NeXT OpenStep 规范的开源实现。他们对 Cocoa API 的实现不是直接匹配的,因此无法直接编译而无需移植。

于 2008-10-05T20:45:23.210 回答
4

是的,Objective-C 编译为机器码。

存在用于 Linux 的 Objective-C 编译器,但 Cocoa 是一种仅适用于 OS X 的技术。我听说过一个名为 GNUstep 的开放式替代品,但对它了解不多。

于 2008-10-05T20:40:08.837 回答
2

Objective-C 是 C 的变体。它编译为本机代码。

于 2008-10-05T20:39:56.843 回答