Clang 與 GCC 編譯器的簡單比較

來源:互聯網
上載者:User

主要整理自知乎上的一個討論:

目前業界的三大主流C++編譯器:VisualC++、g++、Clang++.其中VisualC++最主要的優勢是圖形化介面,調試方便,但是可用的平台非常有限。這裡主要比對g++與Clang++.

Clang 比 GCC 編譯器的優勢:

·        編譯速度更快

·        編譯產出更小

·        出錯提示更友好,比如clang在編譯過程可以直接指出相對簡單的出錯位置以及它“認為”正確的方式。

·        內建有靜態分析工具,可以對代碼進行靜態分析(clang—analyze)。這也是gcc做不到的。

·        因為clang只需要完成詞法和文法分析,代碼最佳化和機器代碼的產生工作由llvm完成。所以和全部由自己包下的gcc比起來,clang可以更專註地做好一件事。這種結構也使clang可以被單獨拿出來用在其他的程式裡,成為其它 app(主要是 IDE)的內嵌 C/C++ parser。對於 IDE 而言,代碼補全、重構是重要的功能,然而如果沒有底層的支援,只使用 tags 分析或是Regex匹配是很難達成的,clang正好充當了這一角色。這樣,editor 工具可以使用和 compiler 一樣的 parser 來完成 edit-time 的語法檢查。而gcc就沒法很方便地做到這一點。由於曆史原因,GCC 是一個單一的可執行程式編譯器,其內部完成了從預先處理到最後代碼產生的全部過程,中間諸多資訊都無法被其他程式重用。

 Gcc的優勢:

·        一些軟體用clang編譯會出現莫名其妙的錯誤,但是用gcc編譯可以通過。

·        GCC在5.0之前一直都在準備用C++實現模組化,期待GCC的5.0會有所突破,補上無法模組化的短板。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.