clang中的-rewrite-objc和Objective-C

时间:2017-06-15 07:28:12

标签: clang objective-c-runtime

最近,我有一个问题。 clang可以将Objective-C转换为c ++使用-rewrite-objc。 所以我认为,第一步。 clang编译Objective-C到C ++。然后编译只能使用c ++编译器。它是这样的吗? clang首先使用runTime将Objective-C转换为C ++,然后编译成机器代码?

1 个答案:

答案 0 :(得分:4)

-rewrite-objc用于将ObjC转换为C ++,因此可以在Visual Studio中进行编译。它仍然是Objective-C语义,您仍然需要objective-c运行时。它并没有神奇地将Objective-C转换为C ++ OO架构。

当Objective-C作为预编译器扩展实现时更像是这样。

这一切都依赖于这样一个事实,即Objective-C类只是具有花哨行为的C结构,而Objective-c方法调用都可以转换为对objc_msgSend()的调用。