區別
人們,尤其是初學者,常常混淆“編譯器”和“IDE”的區別。這很可能是因為編譯器協同工作
編譯器
嚴格來說,編譯器是一個程式,它將一種語言的高階原始碼翻譯成另一種更低階語言。例如,C++ 編譯器將 C++ 原始碼翻譯成目標平臺的組合語言。
然而,有時我們用“編譯器”來指代一個編譯器*工具鏈*,它(對於 C 和 C++ 等語言來說)由預處理器、翻譯器、彙編器和連結器組成。在本文中,“編譯器”一詞將統稱為工具鏈,而“翻譯器”一詞將指代將高階原始碼翻譯成另一種語言的程式。在現實世界中,人們經常互換使用這兩個術語——有時編譯器指翻譯器,有時指整個工具鏈。
IDE
在軟體開發領域,IDE 的縮寫通常指的是整合開發環境。整合開發環境顧名思義,就是一個整合化的開發環境。它通常包括一個文字編輯器和一個呼叫編譯器的機制。大多數 IDE 還包含額外的功能,例如專案管理、偵錯程式整合、程式碼補全、查詢替換、語法高亮等。
比較
編譯器
有很多流行的編譯器,其中包括 GNU Compiler Collection (GCC),它包含 gcc 和 g++(GNU C 編譯器和 GNU C++ 編譯器),以及微軟的 Visual C 和 Visual C++ 編譯器(注意:Visual C/C++ 也指 IDE;在指代 IDE 時,將使用“Visual C Studio”或“Visual C++ Studio”)。還有許多其他質量各異的編譯器,例如 Borland C/C++ 編譯器、Intel C++ 編譯器和 OpenWatcom 編譯器。在本文中,我們將重點關注 gcc 和 Visual C,因為它們是最流行的編譯器。
gcc/g++
- 免費/開源 -- gcc 可以由*任何人*修改、派生或重新分發,前提是修改/派生/重新分發後的版本仍在新通用公共許可證 (GPL) 下許可。
- 跨平臺 -- 由於 gcc 是開源的,它已成功移植到包括 Linux、Microsoft Windows 和 Mac OS 在內的各種平臺。如果您是 Linux 使用者,您幾乎肯定已經安裝了 gcc。您可能需要單獨安裝 g++,在這種情況下,您應該使用發行版的包管理器,或者下載原始碼並自行編譯。在 Windows 上,您可以在 MinGW 和 Cygwin 包中找到 gcc。
- 快速 -- 作為一個現代化的最佳化編譯器,gcc 生成的程式碼相對高效。
注意:gcc 和 g++ 不應該大寫(以區分 gcc 和 GCC)。
Microsoft Visual C/C++
- 免費 -- Visual C/C++ 的一個版本可從微軟網站免費用於個人或商業用途。
- 偵錯程式 -- Visual C/C++ 以其強大的偵錯程式而聞名。
其他
還存在其他編譯器。其中有 tcc (Tiny C Compiler)、OpenWatcom 編譯器和 Intel C++ Compiler。OpenWatcom 是一個跨平臺(Windows、MS-DOS、Linux 等)的最佳化編譯器,可以生成 16 位程式碼(gcc 通常無法做到這一點)。Intel C++ 編譯器提供了非常徹底的最佳化。tcc 以其快速和小型而聞名,儘管它的最佳化能力有限。
最近出現的一個非常有趣的編譯器是 clang。clang 是 LLVM 的 C 系列語言的“前端”。clang 在當前編譯器方面有許多改進,例如增強的錯誤報告、相容性和效能提升。有關更多資訊,請參見 http://clang.llvm.org/。
IDE
流行的 IDE 包括
- Dev-C++(注意:建議您改用 wxDev-C++,因為 Dev-C++ 已有 5 年未更新)
- Code::Blocks
- Netbeans
- Microsoft Visual Studio
- Eclipse
- KDevelop
勘誤
- 關於 Visual C/C++ -- 現在可以免費用於商業用途(**PGP Protector**)
- 各種更正和建議(**helios**)
- 包含 clang/LLVM(**softweyr**)