0
最近,我有一個問題。 clang可以將Objective-C轉換爲C++ use -rewrite-objc。 所以我認爲,第一步。鏗鏘將Objective-C編譯爲C++。然後編譯纔可以使用C++編譯器。它是這樣嗎? clang首先用runTime將Objective-C轉換爲C++,然後編譯爲機器代碼?-rewrite-objc和叮噹中的Objective-C
最近,我有一個問題。 clang可以將Objective-C轉換爲C++ use -rewrite-objc。 所以我認爲,第一步。鏗鏘將Objective-C編譯爲C++。然後編譯纔可以使用C++編譯器。它是這樣嗎? clang首先用runTime將Objective-C轉換爲C++,然後編譯爲機器代碼?-rewrite-objc和叮噹中的Objective-C
-rewrite-objc
存在將ObjC轉換爲C++,因此它可以在Visual Studio中編譯。它仍然是Objective-C語義,您仍然需要objective-c運行時。這不是神奇地將Objective-C轉換爲C++ OO架構。
這更像是當Objective-C作爲預編譯器擴展實現時。
這一切都依賴於這樣一個事實,即Objective-C類只是具有花哨行爲的C結構,而Objective-C方法調用全部可以轉換爲調用objc_msgSend()
。
謝謝。但是我也知道,在編譯時,Clang會直接將OC轉換爲機器代碼,而不是直接轉換爲C++? – merito
它在編譯之前將其轉換爲C++代碼(主要是C,真的)特別是在Visual Studio編譯器接管之前。 – bbum
對不起,打擾你了。在這[問題](https://stackoverflow.com/questions/22234485/how-does-objective-c-compile),最高的答案混淆了我。因此,在編寫OC時應該使用任何C/C++ IR生活? – merito