我是iOS開發人員,我不知道編譯器是如何工作的,我想問一下LLVM GCC 4.2,Xcode 4默認編譯器和GCC 4.2編譯器,Xcode 3默認編譯器。編譯器差異
Q
編譯器差異
0
A
回答
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。
相關問題
- 1. 編譯器 - 平臺差異
- 2. Tomcat Java編譯器差異
- 3. VC++和* nix編譯器差異
- 4. C#編譯器類型推斷差異
- 5. ARM Cortex-M編譯器差異
- 6. C++編譯器之間的差異
- 7. 與參考編譯器的差異
- 8. love2d編譯器行爲的差異
- 9. 差異 - 編譯速度
- 10. Eclipse和Maven編譯差異
- 11. jdk 1.4,1.5,1.6編譯代碼差異
- 12. MSBuild VS Visual Studio - 編譯差異?
- 13. GCC編譯與接頭 - 差異
- 14. 交叉編譯時的文件差異
- 15. 差異編譯VS 2015和VS 2010
- 16. SCONS中用於C和C++編譯的編譯器開關的差異
- 17. 編譯時差?
- 18. OOP語言的編譯器設計差異
- 19. 將Coffeescript編譯爲Node.js與瀏覽器的JS差異
- 20. STL const_iterator強制轉換 - 編譯器差異
- 21. 針對iOS和Android開發的C編譯器差異
- 22. VS Ultimate和Express編譯器之間的差異
- 23. 提升幾何差異編譯器錯誤
- 24. C問題:2編譯器之間的差異
- 25. Oracle和Eclipse編譯器生成的java字節碼差異
- 26. Python中編譯器和ast模塊之間的差異
- 27. GWT 2.5.0編譯器異常
- 28. defproject編譯器異常
- 29. JDT編譯器異常
- 30. BouncyCastle編碼差異
Apple正在從gcc過渡到LLVM。海灣合作委員會4.2是舊的,但穩定。 LLVM是新的和「流血的邊緣」。你付出你的錢,然後你選擇。 – 2011-03-19 08:27:21