GCC(GNU Compiler Collection)
官方網(wǎng)站: https://gcc.gnu.org/
GCC有Windows移植版本往史,比較出名的就是MinGW和TDM-GCC
MinGW :http://www.mingw.org/
TDM-GCC: http://tdm-gcc.tdragon.net/download
Cygwin:http://www.cygwin.com/
GNU編譯器套件(GNU Compiler Collection)包括C、C++银锻、Objective-C纸巷、Fortran惶楼、Java公浪、Ada和Go語言的前端蚕钦,也包括了這些語言的庫(如libstdc++、libgcj等等)笆环。GCC的初衷是為GNU操作系統(tǒng)專門編寫的一款編譯器攒至。GNU系統(tǒng)是徹底的自由軟件厚者。此處躁劣,“自由”的含義是它尊重用戶的自由。
llvm+Clang
LLVM官方網(wǎng)站:http://llvm.org/
Clang官方網(wǎng)站:http://clang.llvm.org/get_started.html
LLVM是構(gòu)架編譯器(compiler)的框架系統(tǒng)库菲,以C++編寫而成账忘,用于優(yōu)化以任意程序語言編寫的程序的編譯時(shí)間(compile-time)、鏈接時(shí)間(link-time)熙宇、運(yùn)行時(shí)間(run-time)以及空閑時(shí)間(idle-time)鳖擒,對(duì)開發(fā)者保持開放,并兼容已有腳本烫止。LLVM計(jì)劃啟動(dòng)于2000年蒋荚,最初由University of Illinois at Urbana-Champaign的Chris Lattner主持開展。2006年Chris Lattner加盟Apple Inc.并致力于LLVM在Apple開發(fā)體系中的應(yīng)用馆蠕。Apple也是LLVM計(jì)劃的主要資助者.
Low Level Virtual Machine (LLVM) 是一個(gè)開源的編譯器架構(gòu)期升,它已經(jīng)被成功應(yīng)用到多個(gè)應(yīng)用領(lǐng)域惊奇。Clang ( 發(fā)音為 /kl??/) 是 LLVM 的一個(gè)編譯器前端,它目前支持 C, C++, Objective-C 以及 Objective-C++ 等編程語言播赁。Clang 對(duì)源程序進(jìn)行詞法分析和語義分析颂郎,并將分析結(jié)果轉(zhuǎn)換為 Abstract Syntax Tree ( 抽象語法樹 ) ,最后使用 LLVM 作為后端代碼的生成器容为。
Clang 的開發(fā)目標(biāo)是提供一個(gè)可以替代 GCC 的前端編譯器乓序。與 GCC 相比,Clang 是一個(gè)重新設(shè)計(jì)的編譯器前端坎背,具有一系列優(yōu)點(diǎn)替劈,例如模塊化,代碼簡(jiǎn)單易懂沼瘫,占用內(nèi)存小以及容易擴(kuò)展和重用等抬纸。由于 Clang 在設(shè)計(jì)上的優(yōu)異性,使得 Clang 非常適合用于設(shè)計(jì)源代碼級(jí)別的分析和轉(zhuǎn)化工具耿戚。Clang 也已經(jīng)被應(yīng)用到一些重要的開發(fā)領(lǐng)域湿故,如 Static Analysis 是一個(gè)基于 Clang 的靜態(tài)代碼分析工具。
MSVC系列
與Visual Studio集成發(fā)布膜蛔,微軟自己的編譯器坛猪,VS是一個(gè)基本完整的開發(fā)工具集,它包括了整個(gè)軟件生命周期中所需要的大部分工具皂股,如UML工具墅茉、代碼管控工具、集成開發(fā)環(huán)境(IDE)等等呜呐。所寫的目標(biāo)代碼適用于微軟支持的所有平臺(tái)就斤,包括Microsoft Windows、Windows Mobile蘑辑、Windows CE洋机、.NET Framework、.NET Compact Framework和Microsoft Silverlight 及Windows Phone洋魂。
Intel C++
Intel C++ Compiler (簡(jiǎn)稱 icc 或 icl)是美國 Intel 公司開發(fā)的 C/C++編譯器绷旗,適用于 Linux、Microsoft Windows 和 Mac OS X 操作系統(tǒng)副砍。
Intel 編譯支持 IA-32衔肢、Intel 64、Itanium 2豁翎、Intel Atom 處理器和某些非 Intel 的兼容處理器(例如某些 AMD 處理器)角骤。開發(fā)人員應(yīng)當(dāng)檢查系統(tǒng)需求。適用于 IA-32 和 Intel 64 的 Intel C++ 編譯器的主要特點(diǎn)是自動(dòng)向量化器心剥,它能夠生成 SSE邦尊、SSE2 和 SSE3 的 SIMD 指令及其適用于 Intel 無線 MMX 和 MMX 2 的嵌入式變種硼控。
Intel C++ Compiler 進(jìn)一步支持 OpenMP 3.0 和適用于對(duì)稱多處理的自動(dòng)并行化。借助于 Cluster OpenMP 的附加能力胳赌,編譯器還可為分布存儲(chǔ)多處理根據(jù) OpenMP 指示自動(dòng)生成消息傳遞接口調(diào)用牢撼。
Intel C++ Compiler 可通過四種方式獲得,它分別是 Intel Parallel Studio疑苫、Intel C++ Compiler 專業(yè)版熏版、Intel 編譯器套裝和 Intel Cluster Toolkit 編譯器版的一部分。該編譯器的最新發(fā)布是 Intel C++ Compiler 14.0 版本
TCC(Tiny C Compiler)
官方網(wǎng)站:http://bellard.org/tcc/
Tiny C Compiler(縮寫為TCC, tCc或TinyCC)用于x86(16/32位)或是x86-64(64位)系統(tǒng)的C compiler捍掺,而開發(fā)者為Fabrice Bellard撼短。軟件是設(shè)計(jì)用于低級(jí)電腦環(huán)境,或是于磁盤容量有限的空間中(1.44磁片或是硬盤)挺勿。軟件可以適用于Windows曲横、Linux、Unix操作系統(tǒng)不瓶,而最新版本為0.9.26(Feb 15, 2013)禾嫉。TCC是在GNU寬通用公共許可證(LGPL)協(xié)議規(guī)范下發(fā)布。作者是大神法布里斯·貝拉(FabriceBellard)
TCC符合ANSI C(C89/C90)規(guī)范蚊丐,Tiny C Compiler Reference Documentation accessed on 2008-08-07]亦符合新版的ISO C99標(biāo)準(zhǔn)規(guī)范熙参,與GNU C擴(kuò)展的內(nèi)嵌匯編語言(即inline assembler,內(nèi)聯(lián)匯編大陸用語)功能匯編語言麦备。
參考
- 歷史上出現(xiàn)過的主流C/C++ 編譯器都有哪些孽椰?https://www.zhihu.com/question/39661628
作者:JeanCheng
來源:CSDN
原文:https://blog.csdn.net/gatieme/article/details/42914393
版權(quán)聲明:本文為博主原創(chuàng)文章,轉(zhuǎn)載請(qǐng)附上博文鏈接凛篙!