我是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. Tomcat Java編譯器差異
- 2. 編譯器 - 平臺差異
- 3. C++編譯器之間的差異
- 4. 與參考編譯器的差異
- 5. love2d編譯器行爲的差異
- 6. Eclipse和Maven編譯差異
- 7. GCC編譯與接頭 - 差異
- 8. 差異編譯VS 2015和VS 2010
- 9. jdk 1.4,1.5,1.6編譯代碼差異
- 10. SCONS中用於C和C++編譯的編譯器開關的差異
- 11. OOP語言的編譯器設計差異
- 12. Python中編譯器和ast模塊之間的差異
- 13. 將Coffeescript編譯爲Node.js與瀏覽器的JS差異
- 14. 提升幾何差異編譯器錯誤
- 15. C問題:2編譯器之間的差異
- 16. Oracle和Eclipse編譯器生成的java字節碼差異
- 17. JDT編譯器異常
- 18. JavaScript編碼差異
- 19. BouncyCastle編碼差異
- 20. Fortran:使用兩種不同的編譯器編譯生成的代碼之間的差異
- 21. 爲什麼其結果的差異基於所述編譯器(gcc和TURBOC)
- 22. 初始化指針,C和C之間的差異++編譯器(GCC-4.3.4)
- 23. 預增量,在MSDOS和DEVC++編譯器後增量結果差異
- 24. 編譯器差異在g ++ 4.7.2和Intel 13.0.1與clang ++ 3.2和g ++ 4.8
- 25. if-check和inline條件之間是否存在編譯器差異?
- 26. GCC結構編譯器怪異數組
- 27. ClojureScript編譯器拋出異常:SRC
- 28. 意外的編譯器異常EXCEPTION
- 29. Java編譯器API空指針異常
- 30. JIT編譯器和異常處理
Apple正在從gcc過渡到LLVM。海灣合作委員會4.2是舊的,但穩定。 LLVM是新的和「流血的邊緣」。你付出你的錢,然後你選擇。 – 2011-03-19 08:27:21