如何确定要使用的C/C++编译器?

14 c c++ compiler-construction operating-system windows-vista

我想弄清楚要使用哪个C/C++编译器.我在维基百科上找到了这个C/C++编译器列表:

http://en.wikipedia.org/wiki/List_of_compilers#C.2FC.2B.2B_compilers

我相当肯定我想使用开源编译器.我觉得如果它是开源的,那么它将是一个更完整的编译器,因为许多程序员的观点被用来使它更好.如果你不同意,请告诉我.

我应该提一下,我计划学习C/C++主要是为了编写与Windows,Linux,MAC和iPhone操作系统兼容的2D/3D游戏应用程序.我目前正在使用Windows Vista x64操作系统.

Uri*_*Uri 18

首先,恕我直言作为初学者,您的开发环境(IDE)比编译器更重要.

我认为人们过早强调编译器的选择.虽然它不是Java,但C++本身是可移植的.

如果您编写的程序仅适用于特定的编译器,那么您可能做错了或者可以稍微努力使其更具可移植性.

如果你达到了编译器选择对你产生重大性能影响的程度,那么你已经完善了程序中的所有其他内容,并且你处于良好状态,而且你的能力也很先进.我们过去常常在CS课程的相当高级阶段教授编译器之间的差异.

如果你使用基于UNIX的机器(Linux,Mac,实际的Linux),那么几乎可以使用GNU(g ++)并且相当标准.如果它足以编译你的操作系统,它对你来说可能已经足够了.在Mac上,您可以使用XCode作为IDE,并且它可以很好地与g ++连接.在Linux上,有些人更喜欢命令行工具,虽然你可能喜欢Eclipse C++支持,但今天它比3 - 4年前要好得多.

Windows上的东西比较棘手.如果您能负担得起,有权访问或有资格获得其中一个免费版本(例如,通过学校),我认为Microsoft Visual C++环境(或现在称之为的任何内容)非常适合学习,它们是用于生产.我认为实际上有一个轻量级的视觉工作室,现在强调C++,这可能是一个良好的开端.如果不这样做,您可能会找到特定于C++的Eclipse发行版,并包含GNU编译器的实现.

  • @Adam:不,可移植性几乎与IDE选择IMO完全正交.选择你最喜欢的IDE,用它来编写可移植的代码(即避免使用IDE编译器附带的编译器扩展),然后当你完成后,取出代码并在其他目标平台上编译它,可能使用不同的编译器.例如,我使用Visual Studio编写了大部分程序,然后使用gcc在OS X/Linux上编译项目.缺点是当我移植时我必须编写一个单独的makefile(MSVC不使用它们),这是一个痛苦但值得的. (6认同)

Gre*_*con 14

在你还在学习这些语言的同时使用gcc和g ++,这是一个足够大的任务.如果您需要一个专门的编译器,您将需要更深入地了解语言和您的问题域,以正确评估候选人.

  • + 1 ... GCC在合规性和可移植性方面处于领先地位. (4认同)
  • @Potatoswatter:相比什么? (4认同)
  • @ Lo'oris:你的意思是说"代码向导"之类的东西对学习来说太糟糕了.不要用洗澡水把婴儿扔掉; 代码生成是良好IDE中最不重要的部分. (4认同)
  • 恕我直言IDE很难学习:你最终会得到大量你不是真正理解的代码. (2认同)

Max*_*Max 5

获取Visual Studio Express(更容易和更快速的IMO,设置)并学习它; 当你认为你对C++以及"事物"如何运作有足够的了解时,你可以开始使用像QT或GCC(使用cygwin)这样的东西并学习移植到不同的平台.

  • 该工具包称为Qt(上Q,下T); QT是QuickTime(上面的Q和T). (4认同)

Jes*_*per 5

我觉得如果它是开源的,那么它将是一个更完整的编译器,因为许多程序员的观点被用来使它更好.

这不一定是真的.您还可以说,如果您使用Microsoft的编译器,它将是Windows的最佳选择,因为Microsoft最了解如何优化Windows的编译器.

Microsoft拥有Visual C++ Express Edition,它是免费的,并且包括一个非常适合Windows开发的漂亮IDE.

但如果您对制作便携式软件感兴趣,请查看GCC,它是Linux上的默认编译器,也可以在Mac上使用.(iPhone完全不同,需要只在Mac OS X上运行的特殊工具).您可以使用CygwinMinGW获取适用于Windows的GCC .