常用語言的編譯器

C/C++編譯器

首先是如雷貫耳的這幾位仁兄,MSVC、GCC、Cygwin、MingW(Cygwin和MingW的英文發音),另外還有些小衆和新秀,像ICC(Intel C/C++ Compiler)、BCC(Borland C/C++ Compiler,快銷聲匿跡了)、RVCT(ARM的彙編/C/C++編譯器,內置在ARM的IDE——RVDS中)、Pgi編譯器……其實有一大串,我們只要熟悉常用的最強大的幾款就可以了。

主流C/C++編譯器|編譯環境簡介

MSVC

MSVC是微軟Windows平臺Visual Studio自帶的C/C++編譯器。
**優點:**對Windows平臺支持好,編譯快。
**缺點:**對C++的新標準支持得少。

GCC

GCC原名GNU C Compiler,後來逐漸支持更多的語言編譯(C++、Fortran、Pascal、Objective-C、Java、Ada、Go等),所以變成了GNU Compiler Collection(GNU編譯器套裝),是一套由GNU工程開發的支持多種編程語言的編譯器。GCC是自由軟件發展過程中的著名例子,由自由軟件基金會以GPL協議發佈,是大多數類Unix(如Linux、BSD、Mac OS X等)的標準編譯器,而且適用於Windows(藉助其他移植項目實現的,比如MingW、Cygwin等)。GCC支持多種計算機體系芯片,如x86、ARM,並已移植到其他多種硬件平臺。
優點:類Unix下的標準編譯器,支持衆多語言,支持交叉編譯。
缺點:默認不支持Windows,需要第三方移植纔可用於Windows。

Clang

licence極度友好,代碼質量非常棒,採用的IR爲LLVM IR非常優秀,各大公司逐步發力在Clang上,包括不限於微軟,IBM,Nvidia等,各大公司也在開始瘋狂的往Clang / LLVM交代碼(圈地),也開始往Clang實現OpenMP,Nvidia GPU等支持,目前在趕超GCC的道路上一路激情的狂奔,前途一片光明。但是Clang依賴於的LLVM,目前的性能無法與GCC相提辯論,在Benchmark性能測試上幾乎沒有勝利的項目,優化的道路上任重道遠,同時一些開源軟件沒有辦法編譯過去,主要是缺乏對GCC 一些Builtin函數、自身帶的彙編器的孱弱導致。

ICC

沒有自己專門的前端(傳說中的外包),而且是針對Intel體系結構上專門優化。

IBM XL C++

在IBM特定硬件與平臺上表現非常牛逼,Benchmark性能測試非常優秀,其最初的設計思想就是爲了性能,其最高優化級別可以達到O5,帶來的缺點則是在編譯時間上往往過長。而另外一個常被人詬病的是對C++標準的支持、開源軟件的支持、錯誤信息的提示上都不夠友好,然而從13.2開始,隨着IBM採用Clang融合方案,目前這幾項都得到有效改良,然而融合的道路也必定是漫長的。

JAVA編譯器

javac

javac 是java語言編程編譯器。全稱java compiler。javac工具讀由java語言編寫的類和接口的定義,並將它們編譯成字節代碼的class文件。javac 可以隱式編譯一些沒有在命令行中提及的源文件。用 -verbose 選項可跟蹤自動編譯。當編譯源文件時,編譯器常常需要它還沒有識別出的類型的有關信息。對於源文件中使用、擴展或實現的每個類或接口,編譯器都需要其類型信息。這包括在源文件中沒有明確提及、但通過繼承提供信息的類和接口

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章