学习C ++时可以使用哪些优秀的编译器?
对于初学者来说,易于使用的C ++编译器有哪些建议?自由或者开源的将是首选。
解决方案
回答
他们的C ++编译器的Microsoft Visual Studio Express Edition很好
回答
对于简单的事情,GCC是一个不错的选择。
Visual Studio Express版是主要Windows C ++编译器的免费版本。
如果我们在Windows上,我会使用VS。如果我们使用的是Linux,则应使用GCC。
*我说GCC代表简单的事情,因为对于更复杂的项目,构建过程并不那么容易
回答
我建议使用Dev C ++。这是一个小型轻巧的IDE,使用mingw端口作为后端,这意味着我们将编译defacto C / C ++编译器gcc
回答
G ++是GNU C ++编译器。大多数* nix发行版都应具有可用的软件包。
回答
我们始终可以使用Gnu编译器集合(GCC)中的C ++编译器。它几乎适用于地球上的所有Unix系统,BSD,Mac OS,Linux和Windows(通过Cygwin或者mingw)。
许多IDE支持GCC C ++编译器,例如如其他文章所述,Linux / KDE下的KDevelop或者Dev-CPP。
回答
对于初学者:g ++ --pedantic-errors -Wall
从一开始,它将有助于强制执行良好的编程。
回答
CodeBlocks是一个非常好的IDE,可以与许多其他编译器CL.EXE(来自Visual Studio)和gcc一起使用。它还提供了包含gcc的版本。
同样,Visual Studio Express版本也是不错的选择(如果要开发调用winapi函数的应用程序,则可以使用Platform SDK)。
回答
gcc -Wall(启用所有警告)-Werror(将警告更改为错误),-pedantic(获取非标准代码的警告)和-ansi(使标准c ++ 98)。
如果我们知道警告并且需要将其关闭,则可以随时将其重新变成警告。
回答
Eclipse是Mac或者Mac上免费的Xcode的好选择,可以在其开发站点上下载/删除。
回答
我建议使用gcc,因为它是设计用于命令行的,并且我们可以编译简单的程序并查看正在发生的事情:
g++ -o myprogram myprogram.cc ls -l myprogram
一进一出,两出。使用Visual C ++,大多数人都将其与GUI一起使用,我们必须在其中设置项目,而IDE会生成一堆文件,如果我们刚入门,它们可能会妨碍工作。
如果我们使用的是Windows,则可以在MingW或者Cygwin之间进行选择。 Cygwin的设置有点麻烦,因为我们必须选择要安装的软件包,但是我没有使用MingW的经验。
回答
命令行中的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
`
回答
使用g ++或者MingW / Cygwin的一个尚未被提及的原因是,启动和IDE将隐藏正在发生的事情。理解例如编译和链接之间的差异将对以后的工作非常有用。从一开始就学习并理解它,我们甚至都不知道以后应该感谢自己。
-最大限度
回答
我同意Iulian?erb?noiu的观点:Code :: Blocks是一个非常好的解决方案,可从Linux(它将使用g ++ / gcc)和Windows(它将使用MS编译器或者gcc)使用
请注意,如果仅是了解标头,源代码,包含等的逻辑,则应该至少使用一两次,尝试使用旧的makefile进行编译。
作为初学者,不要忘记阅读有关C ++的书(当尝试学习语言的怪癖时,会想到Scott Meyers和Herb Sutter的书),并研究开放源码的高知名度项目,以从其代码风格中学习(他们已经遇到了我们将遇到的问题,并且可能找到了可行的解决方案...)。
回答
"我说GCC的目的很简单,因为对于更复杂的项目,构建过程并不那么容易。"
是的,但是我不认为了解大型项目的构建过程与了解项目本身是正交的。我工作的最后一份工作是,他们有一个庞大的项目,需要为目标平台(LynxOS)和仿真环境(WinXP)进行构建。他们选择将所有内容都放在一个.VCP文件中,以便在Windows上使用,并将其构建为一个大型可执行文件。目标上大约有50个单独的进程,因此他们编写了一个makefile,列出了所有3000个源文件,将它们全部编译到一个大的库中,然后将每个可执行文件的单独main.cpp与多合一库链接到制作50个可执行文件(这些代码可能与其他可执行文件共享其代码的10%)。结果,没有开发人员知道什么代码依赖于任何其他代码。结果,他们从不费力尝试在任何事物之间定义干净的接口,因为任何地方都可以轻松访问所有事物。分层构建系统可以帮助在原本杂乱无章的源代码存储库中强制执行某种顺序。
如果我们不学习.cpp文件如何产生目标代码,什么是静态库,什么是共享库等,那么在学习C / C ++时,我们仍然需要在某个时候学习它才能成为目标语言。胜任的C / C ++开发人员。