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