IDE: 現在的IDE把編譯器集成進來了,包括代碼編輯器+編譯器。
GNU:GNU's NOT UNIX,鄙視UNIX不開源)
GCC----GNU Compiler Collection
即GUN編譯器集合,包括gcc和g++編譯器,它可以編譯C、C++、JAV、Fortran、Pascal、Object-C、Ada等語言。
gcc是GCC中的GUN C Compiler(C 編譯器)
g++是GCC中的GUN C++ Compiler(C++編譯器)
是GNU項目的關鍵部分,亦是自由的類Unix及蘋果電腦Mac OS X 操作系統的標准編譯器。GCC(特別是其中的C語言編譯器)也常被認為是跨平台編譯器的事實標准。
gcc調用了C compiler,而g++調用了C++ compiler
gcc和g++的主要區別
-
對於 .c和.cpp文件,gcc分別當做c和cpp文件編譯(c和cpp的語法強度是不一樣的)
-
對於 .c和.cpp文件,g++則統一當做cpp文件編譯
-
使用g++編譯文件時,g++會自動鏈接標准庫STL,而gcc不會自動鏈接STL
Clang
一個C、C++、Objective-C和Objective-C++編程語言的編譯器前端。包括Clang前端和Clang靜態分析器等。[3]
它采用了底層虛擬機(LLVM)作為其后端,目標是提供一個GNU編譯器套裝(GCC)的替代品。蘋果公司的贊助支持下進行開發,而源代碼授權是使用類BSD的伊利諾伊大學厄巴納-香檳分校開源碼許可。
兼容GCC,也是跨平台。
cl.exe
cl.exe是Microsoft C/C++編譯器(因此也叫VC++ 編譯器),只能在支持Microsoft Visual Studio 的操作系統中運行
還記得在VS安裝后會給項目配置lib,include,dll庫的目錄。那么系統如何去根據目錄去找這些文件?
需要將這些文件路徑放到系統的path變量里-----系統默認查找的范圍。所以報錯"cl.exe沒找到",大概率就是這里path沒設置好!!!(因為裝了VS就自帶了cl.exe編譯器)
總結
Linux系統及跨平台用GNU
windows用cl,編譯內存占用小。
另外,還有GCC在windows平台的移植版本,Ming-W64和 Cygwin。其中MingW-64是真正的GCC移植,而cygwin只是提供一個類unix的環境內部是原生的GCC。