• 文章
  • 编译器、IDE、调试器和爵士乐
作者:
2009年1月26日 (最后更新:2009年1月26日)

编译器、IDE、调试器和爵士乐

评分:3.5/5 (39票)
*****
另一篇涵盖非常常见主题的文章。经常出现的问题例如:
- 我可以使用什么 IDE?
- 有哪些编译器?
- 哪个<插入>是最好的?

让我们从
编译器
编译器是一个命令行应用程序(在大多数情况下),它接收你的源代码文件并生成一个可执行文件。生成可执行文件所使用的方法以及生成的可执行文件的大小/优化程度将因编译器而异。

编译器不能帮助你编写代码,它不是一个可以让你输入代码的开发环境。它的唯一目的是接收已编写的代码并构建一个可执行文件。

没有一个编译器比另一个更好。它们都有各自的优缺点。如果你想比较编译器,请从它们自己网站上的技术规格进行比较。在大多数情况下,这样做不会给你带来多大的好处。如果你的关注点是优化,那么在开发高度优化的代码时,最好的办法是遵循标准的编码技术。

一些常见的编译器有
- MS Visual C++ 编译器 (Windows) - http://www.microsoft.com/express/vc/
- GCC (Linux) - http://gcc.gnu.org/
- MingW (Windows) - http://www.mingw.org/
- Intel C++ 编译器 (Linux, Windows, OS X) - http://www.intel.com/cd/software/products/asmo-na/eng/compilers/284132.htm
- Borland C++ 编译器 (Windows) - http://www.borland.com

集成开发环境 (IDE)

IDE 是一个完整的软件开发套件。通常它们会捆绑文本编辑器、编译器和调试器。文本编辑器是主要组成部分,因为它们提供语法高亮、项目管理、源代码控制集成等功能。

IDE 不是编译器,但大多数 IDE 会附带上一节中列出的编译器之一。

例如,Dev-C++ 附带 MingW,Code::Blocks 附带 GCC。

IDE 的复杂性差异很大,有些更适合新手开发者,有些更适合高级/专业开发者。

注意:在其官方论坛上不再推荐 Dev-C++。应该改用 wxDev-C++。

一些常见的 IDE
易于使用
wxDev-C++ (Windows) - http://wxdsgn.sourceforge.net/
Anjuta (Linux) - http://anjuta.sourceforge.net/

中等
Code::Blocks (Windows/Linux) - http://www.codeblocks.org/
MS Visual C++ Express (Windows) - http://www.microsoft.com/express/vc/
NetBeans (全部) - http://www.netbeans.org/ KDevelop (Linux) - http://www.kdevelop.org/
Borland C++ (Windows) - http://www.borland.com

困难
Eclipse CDT (全部) - http://www.eclipse.org/

注意:你也可以随意在任何你喜欢的文本编辑器中编写代码,然后手动编译。

调试器
调试器用于在应用程序运行时分析它。你可以在选定的点(断点)暂停应用程序,并查看变量值等信息。

目前,似乎只有 2 个主要的调试器在使用。

Microsoft Visual Studio 调试器 (Windows)
这是一个高质量的调试器。它易于使用,并且与 Visual Studio IDE 无缝集成。在处理多线程时确实存在一些小问题,但总体上工作得非常好。

GDB (全部)
这是一个开源调试器,通常与 GCC/MingW 一起运行。它也是一个质量不错的调试器,但不幸的是,其多线程调试器远远落后于 Visual Studio。

幸运的是,GDB 是平台无关的,并且可以与许多 IDE 集成。不幸的是,这种集成有时非常难以使用且不直观。

请在下方发布更正/评论或问题。

其理由是 Visual Studio 提供了更多功能。尤其是在处理 .NET 时。你可以链接不同语言的程序集,它具有真正的集成源代码控制,并且可以使用其他插件(例如 SVN)。你还可以在一个解决方案中有多个项目等。

它比 Dev-C++(wxDev-C++) 复杂得多。
Eclipse (带 CDT 插件)。

我使用它是因为我的开发同时针对 Windows 和 Linux 系统。所以我更喜欢使用一个可以在多个平台上使用的 IDE。Eclipse 还有一个不错的插件框架,因此我可以在两个安装上使用相同的 SubVersion 插件。

我也使用它,因为它还有我喜欢的其他插件(PHP、数据库、建模等)。

我的编译器是 GCC (Linux) 和 Mingw (Windows)。我在两个平台上都使用 GDB。
MingW 是 GCC 的一个补丁版本。你可以预期源代码中不包含编译器。任何从源代码构建的应用程序都是如此。