2013-08-05 37 views
5

還有類似的問題this但我不滿意答案。clang和clang-mp-3.3(3.2或3.4)有什麼區別?

我試過安裝clang。在嘗試安裝鐺後,我結束了兩個鐺聲。 一個是/ usr /斌/鐺或鐺++等/opt/local/bin/clang-mp-3.3或鐺++ - MP-3.3(這是我從macport安裝)

它們作用相同,當我編譯簡單的程序但是當我嘗試編譯其他大而複雜的C++代碼時,情況會有所不同。我嘗試閱讀documentation以獲得一些概述。

從這裏ticket我可以知道macport clang更接近gcc。我知道,鏗鏘做前端工作(作爲C語言解釋器)和llvm是後端。什麼和如何差異首先出現?感謝您的時間。

回答

1

TL; DR:如果它們在llvm版本方面足夠接近,那麼它們的行爲應該類似(可能在其中一個上增加了優化/功能)。但是沒有任何信息可以用來找出你的意思。

從我看到的Portfile中,{llvm,clang} -3.4端口(以及其他類似的端口,我假設)安裝了簡單的llvm和/或clang。

例如:最新發布的Xcode隨附:

Apple LLVM version 5.1 (clang-503.0.40) (based on LLVM 3.4svn) 
Target: x86_64-apple-darwin13.2.0 
Thread model: posix 

蘋果並沒有告訴我們具體的版本號,但我們知道他們的私人鐺是基於LLVM的修訂分支樹幹之間2013年中和2014年初。

我也不明白你的意思是「macport clang更接近gcc」。這似乎沒有任何意義,但我可能會誤解。蘋果公司的鐺聲已經非常接近主流砰砰聲AFAIK。他們有他們的版本,這是基於未知的版本,但仍然。

鐺是 llvm項目的C前端。它由llvm社區引導,所有(公共)工作都發生在主要llvm存儲庫(在clang的目錄中)。但是你仍然可以安裝llvm而無需clang,或者沒有(大部分?)其他llvm實用程序的clang。這就是爲什麼你在macports上爲clang和llvm分開包的原因。

你爲什麼說他們的行爲不同,他們的行爲有多不同?你用相同的選項編譯?哪個?它們是否來自同一版本,比如3.3和3.3svn(這隻意味着它們最多隻有6個月,它們不會使它們成爲完全相同的版本)?