• 文章
  • 流行编译器和 IDE 的比较
发布
2010年5月16日 (最后更新:2011年9月25日)

流行编译器和 IDE 的比较

得分:3.4/5 (148 票)
*****
区别
人们,尤其是初学者,常常混淆“编译器”和“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 在当前编译器方面有许多改进,例如增强的错误报告、兼容性和性能提升。有关更多信息,请参见 https://clang.llvm.net.cn/。

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**)