学习C ++时有哪些好的编译器可以使用?

时间:2008-09-16 21:09:01

标签: c++ compiler-construction

对于初学者来说,易于使用的C ++编译器有哪些建议?免费或开源的将是首选。

14 个答案:

答案 0 :(得分:17)

GCC是简单事物的好选择。

Visual Studio Express版是主要的Windows C ++编译器的免费版本。

如果你在Windows上,我会使用VS.如果您使用的是Linux,则应使用GCC。

*我说简单的GCC是因为对于一个更复杂的项目,构建过程并不那么容易

答案 1 :(得分:4)

G ++是GNU C ++编译器。大多数* nix发行版应该有可用的包。

答案 2 :(得分:3)

我建议使用Dev C++。它是一个小巧轻便的IDE,它使用mingw端口作为后端,这意味着你将编译defacto C / C ++编译器,gcc

答案 3 :(得分:3)

对于初学者:g ++ --pedantic-errors -Wall

它将从一开始就帮助实施良好的编程。

答案 4 :(得分:3)

gcc with -Wall(启用所有警告)-Werror(将警告更改为错误),-pedantic(获取非标准代码的警告)和-ansi(制作标准c ++ 98)。

如果警告是您知道并且需要关闭的,您可以随时将它们变回警告。

答案 5 :(得分:3)

我推荐使用gcc,因为它设计用于命令行,你可以编译简单的程序,看看到底发生了什么:

g++ -o myprogram myprogram.cc
ls -l myprogram

一个文件,两个文件输出。使用Visual C ++,大多数人将它与GUI结合使用,您必须在其中设置项目,并且IDE会生成一堆文件,如果您刚刚开始,这些文件可能会受到阻碍。

如果您使用的是Windows,则可以选择MingW或Cygwin。 Cygwin是一项设置工作,因为您必须选择要安装的软件包,但我没有使用MingW的经验。

答案 6 :(得分:2)

您始终可以使用Gnu编译器集合(GCC)中的C ++编译器。它几乎可用于任何地球上的Unix系统,BSD,Mac OS,Linux和Windows(通过Cygwin或mingw)。

许多IDE支持GCC C ++编译器,例如: KDevelop在Linux / KDE下,或者在其他帖子中提到的Dev-CPP。

答案 7 :(得分:1)

他们的C ++编译器的Microsoft Visual Studio Express Edition很好

答案 8 :(得分:1)

CodeBlocks是一个非常好的IDE,可以使用除了许多其他编译器CL.EXE(来自visual studio)和gcc。它也包含在包含gcc的版本中。

Visual Studio Express版本也是一个不错的选择(如果您要开发调用winapi功能的应用程序,则使用Platform SDK)。

答案 9 :(得分:1)

Eclipse对于mac来说是一个很好的,或者是Apple自己的免费Xcode,它可以离开他们的开发站点。

答案 10 :(得分:1)

使用尚未提及的g ++或MingW / Cygwin的一个原因是启动和IDE将隐藏正在发生的一些事情。例如,了解编译和链接之间的差异将非常有用。从一开始就学习并理解它,你甚至不知道你以后应该感谢自己。

-Max

答案 11 :(得分:1)

I say GCC for simple things because for a more complicated project the build process isn't so easy

是的,但我不认为理解大型项目的构建过程与理解项目本身是正交的。我上一份工作,他们有一个庞大的项目需要为目标平台(LynxOS)以及仿真环境(WinXP)构建。他们选择将所有东西都放在Windows上的一个.VCP文件中,并将其构建为一个大的可执行文件。在目标上,它是大约50个单独的进程,因此他们编写了一个makefile,列出了所有3000个源文件,将它们全部编译成一个大型库,然后将每个可执行文件的各个main.cpp与一体化库链接到制作50个可执行文件(可能与其他可执行文件共享10%的代码)。因此,没有开发人员知道哪些代码依赖于任何其他代码。因此,他们从不打算尝试在任何事物之间定义干净的界面,因为一切都可以从到处轻松访问。分层构建系统可以帮助在其他无组织的源代码存储库中强制执行某种顺序。

如果你不了解.cpp文件如何产生目标代码,静态库是什么,共享库是什么等等,当你学习C / C ++时,你仍然需要在某些时候学习它成为一名称职的C / C ++开发人员。

答案 12 :(得分:0)

命令行中的Visual Studio的行为与GCC类似。只需打开Visual Studio命令行窗口,然后:

c:\temp> cl /nologo /EHsc /W4 foo.cpp
c:\temp> dir /b foo.*
foo.cpp  <-- your source file
foo.obj  <-- result of compiling the cpp file
foo.pdb  <-- debugging symbols (friendly names for debugging)
foo.exe  <-- result of linking the obj with libraries

答案 13 :(得分:0)

我同意IulianŞerbănoiu: Code :: Blocks是一个非常好的解决方案,可以从Linux(它将使用g ++ / gcc)和Windows(它将使用MS编译器或GCC)

请注意,至少应该尝试使用一个好的旧makefile进行编译,如果只是为了理解标题,来源,包含等背后的逻辑等。

作为初学者,不要忘记阅读有关C ++的书籍(Scott Meyers和Herb Sutter书籍在试图学习语言的怪癖时会浮现在脑海中),并研究开源高调项目以便学习他们的代码风格(他们已经遇到了你将遇到的问题,并且可能找到了可行的解决方案......)。