2011-03-19 69 views
0

我是iOS開發人員,我不知道編譯器是如何工作的,我想問一下LLVM GCC 4.2,Xcode 4默認編譯器和GCC 4.2編譯器,Xcode 3默認編譯器。編譯器差異

+0

Apple正在從gcc過渡到LLVM。海灣合作委員會4.2是舊的,但穩定。 LLVM是新的和「流血的邊緣」。你付出你的錢,然後你選擇。 – 2011-03-19 08:27:21

回答

2

這是我的理解

  • GCC 4.2的(大部分)股票標準的開源GNU C編譯器,用C,C++和Objective-C的作品。它幾乎是所有開源代碼中使用的標準編譯器,並且經過了嚴格的測試。但因爲它的舊技術,它只是一個編譯器,它沒有其他用途的鉤子。它非常通用,與CPU和平臺無關。

  • LLVM是下一代編譯軟件。它具有語法和語義意識,編譯爲字節碼,然後編譯爲本地代碼,並提供掛鉤,以便IDE和其他工具可以使用它的知識。正是這種意識使Apple能夠改進自動完成功能,實施fixit,並在Xcode 4中進行構建和分析。LLVM是Apple的未來,也是GCC的未來。由於LLVM的優化更加智能化(不確定這一點),LLVM也產生了據稱更嚴格的代碼。 LLVM還允許在某些時候進行更動態的語言綁定。

  • LLVM GCC是LLVM與舊GCC後端編譯器的中途標記,語法和語義預處理。

我用他們的方式

  • 我在開發期間使用LLVM,因爲它讓我警告的任何和所有的問題。當我第一次在遺留代碼上運行它時發現了一些問題,真的很有幫助。

  • 我使用GCC爲iOS 3.1.3應用程序生成最終可執行文件,併爲所有iOS 4.0/Mac 10.6應用程序生成LLVM。