我不明白整個Clang和llvm thingy。我問自己,在iOS設備運行時,代碼是在VM中運行,還是在編譯時通過「VM」進行編譯時優化等等?iOS編程與Clang和llvm一起虛擬嗎?
回答
LLVM不是虛擬機那這個詞的意思。問題是LLVM是一種代碼生成器,可幫助統一編譯器,語言和目標處理器/操作系統。 LLVM僅適用於編譯器開發人員。事實上,在Clang編譯器中,它扮演着重要角色,但這完全是內部的 - Clang出來的是純粹的本地ARM/iOS機器代碼。
錯了。 LLVM *是一個編譯器。它將高級語言(LLVM IR)編譯爲各種平臺的本地代碼。 Clang反過來是C/ObjC/C++/OpenCL到LLVM IR的編譯器。 LLVM是一個非常有用的東西,不僅僅是編譯器開發者。我們可以將它用於各種代碼檢測,代碼分析,任意代碼轉換等。 –
@ SK-邏輯修復了第一部分 - 但「可以將其用於各種代碼檢測,代碼分析,任意代碼轉換等等」 - 很好,編譯器開發人員會這樣做,對嗎? – 2012-09-17 15:10:51
不,您不必是編譯器開發人員,以便對代碼庫中的語義搜索感興趣。例如,有一次,我使用LLVM IR來定位從某個函數返回的數據被隱式轉換爲「double」的所有位置。這對於爲代碼研究生成調用圖和其他有用數據也非常有用。 –
- 1. -forwardInvocation與Clang-LLVM一起使用,但不與GCC一起使用
- 2. Eclipse CDT和LLVM與clang
- 3. Clang,LLVM和g ++
- 4. LLVM和CLANG - 一般信息
- 5. 虛擬表在llvm(llvm-py)
- 6. 編譯llvm和clang從他們的git倉庫掛起96%
- 7. 使用OpenMP與llvm-clang
- 8. libC++,Windows上的Clang和LLVM
- 9. 與clang一起使用Crypto ++
- 10. dynamic_cast on llvm clang編譯器失敗
- 11. 什麼是(LLVM Clang)?它是目標c編碼的軟件嗎?
- 12. 安裝Clang/LLVM/Ubuntu
- 13. llvm clang 2.6:「不使用clang編譯器進行C++輸入」
- 14. 從llvm-clang到llvm-gcc42(命令行)的默認編譯器
- 15. clang插件編譯錯誤:未定義符號llvm :: Registry <clang :: PluginASTAction,llvm :: RegistryTraits <clang :: PluginASTAction>>
- 16. 我可以使用預編譯的llvm/clang構建一個Checker嗎?
- 17. 鏈接到Unix上的Clang和LLVM - 被迫使用LLVM的編譯器標誌?
- 18. C++:`CHttpConnection`和`CInternetSession` OS X/LLVM Clang等效嗎?
- 19. LLVM和Clang中的優化級別
- 20. Objective-C Singletons和LLVM/clang泄漏警告
- 21. 輕鬆在Windows上分發Clang和LLVM
- 22. LLVM,CLang和LLC優化傳遞
- 23. 的Xcode 3.2.1 GCC CLANG和LLVM神祕化
- 24. LLVM和Clang的來源有多大?
- 25. 使用LLVM Clang 2.6和Xcode 3.2
- 26. 如何使用多個GCC-LLVM和clang
- 27. C++的LLVM和Clang支持11
- 28. 如何使用clang ++在LLVM中編譯C++程序?
- 29. C++虛擬表崩潰LLVM/XCode
- 30. Apple LLVM 6.0 Error Clang 254
'LLVM'中的'VM'並不是您的想法。它是一箇中間抽象機器表示,就像gcc和幾乎所有其他編譯器一樣。很多人都被這個名字所迷惑 - LLVM團隊的好戲! –