在没有IDE的情况下学习C ++

时间:2009-08-05 08:47:52

标签: c++ compiler-construction

我最近开始学习C ++,并且完全混淆了IDE和编译器的选择。我能胜任解释语言,喜欢使用任何IDE或文本编辑器的简单性,然后从命令行运行解释器。无论使用何种IDE,一切都按预期工作,因为我每次都使用相同的解释器。

现在我已经开始学习C ++了,我不知道选择不同的编译器,更重要的是,他们的差异。如果在学习的过程中,我使用文本编辑器和从命令行运行的编译器,那对我来说似乎更简单(不一定更容易)。我对编译和链接的工作方式有基本的了解,并且我理解了头文件的作用。

首先,是否有任何书籍或网站通过这种方法教授C ++? (IDE-更少) 许多书籍试图通过选择两个并比较它们来指出IDE和编译器之间的差异,这让我感到困惑。

其次,我应该如何设置我的工作流程? (忽略文本编辑器的选择,我在谈论编译器,链接器等)我正在努力理解不同编译器的差异,所以请在回答时牢记这一点。似乎最流行的编译器是g ++和CL。 类似的问题,但我更感兴趣的是为什么有些程序可以与某些编译器配合使用而不是其他编程器:C++ Compiler for Windows without IDE?

更多信息:我在Windows上开发,据我所知,似乎有'纯'C ++,然后C ++与Windows有某种关系,这是Visual C ++吗?我想编写使用Windows功能的程序,但我想知道何时使用Windows功能以及何时编写可在任何平台上运行的代码。

更新:所以当我刚开始时,我似乎不应该担心编译器。我想要理解差异的原因是因为我不想为特定的编译器编写代码并养成坏习惯。这不是问题吗?

9 个答案:

答案 0 :(得分:11)

  

首先,是否有任何书籍或网站通过这种方法教授C ++? (IDE-更少)

是的,当然。已经提到过Stroustrup's book。对于学习C ++,我还推荐另外两本书:如果你喜欢彻底的解释并且不要回避1000页,请查看Lippman et al。如果您喜欢简短的介绍并且不要担心陡峭的学习曲线,请查看Koenig/Moo。两者都是优秀的书籍。 (顺便说一句,寻找好书的好地方一直是ACCU的书评部分。)

至于您要使用的工具链:如果您更喜欢独立编辑器并从命令行调用编译器,则可以使用GCC或VC执行此操作。这种方法的优势在于它更不可能引诱您使用专有的东西(如C ++ / CLI)。如果您想尝试使用IDE,那么一旦您开始设置新的C ++项目,VC Express就可以了。当然,您可以为新项目调整的选项数量非常多。但另一方面,你会得到像集成调试器这样的东西。请注意,还有其他集成解决方案。最成熟和最突出的可能是日食。

编辑:如果您不介意花一点钱,请查看Comeau。它不是免费的,但它也不贵,它通常被认为是最符合标准的C ++编译器,并且具有出色的错误消息。 (您可以在the website进行测试。)请注意,它会发出C代码。这意味着你必须有另一个编译器来创建一个可执行程序。但是GCC和VC Express都会这样做,所以没有其他成本。 (请注意,使用VC,您将获得Dinkumware的std lib实现,这也被认为是非常好的。)

答案 1 :(得分:4)

使用MinGW - 它是一个命令行C ++开发工具链,允许您创建Windows应用程序。您引用的SO链接似乎包含所有相关详细信息,因此我不太明白您发布此问题的原因。

答案 2 :(得分:3)

  

首先,是否有任何书籍或网站通过这种方法教授C ++? (IDE-更少)

从阅读The C++ Programming Language本书开始。由C ++的创建者Bjarne Stroustrup撰写,这是世界上最受信赖和广泛阅读的关于C ++的书。

另见Programming — Principles and Practice Using C++。它是对以前从未编程的人的编程介绍。对于那些已经编程并希望改进其风格和技术 - 或者只是学习现代C ++的人来说,它也会很有用。

答案 3 :(得分:1)

  

我正在开发Windows和Windows   我的理解,似乎在那里   是'纯'C ++,然后是C ++   某种程度上与windows有关,是这样的   Visual C ++?我想写   使用Windows的程序   功能,但我想知道我什么时候   使用Windows功能,当我   编写适用于任何代码的代码   平台。

MS Visual C ++ 2008 Express是面向像你这样的人的免费IDE,可以从微软下载,我建议你试一试。

答案 4 :(得分:1)

Visual C ++是IDE程序包的名称。安装它会安装很多东西,包括编译器cl.exe,它可以根据设置编译用C,C ++或C ++ / CLI编程语言编写的程序(用于.Net框架)。

您可以在没有IDE的命令提示符下使用编译器(例如)选择Start>节目> Microsoft Visual Studio X> Visual Studio工具> Visual Studio X命令提示符。这将执行一个脚本,该脚本在给出命令提示符之前设置编译程序所需的各种环境设置。

答案 5 :(得分:0)

在Windows上我推荐使用Visual Studio Express - 它是免费的,并且被Windows平台上的C ++程序员广泛接受。

由于你开始学习语言,不要为编译器和IDE的差异,优点/缺点而烦恼 - 当你更熟练掌握语言并参与编写真实的程序时,请留下它。 / p>

答案 6 :(得分:0)

我实际上建议使用IDE方法,Microsoft Visual C ++ Express Edition应该可以做到。排除一些花哨的语法,大多数C ++编译器的行为方式都相同。 C ++是一种具有非常小的标准库的语言(主要涵盖I / O函数,基本数学等)。这可能就是你所说的纯C ++。对于更高级的东西,你将不得不使用系统库..例如,如果你想编写windows gui应用程序,你必须包含windows.h头文件,这是特定于平台的,只存在于windows编译器上..

答案 7 :(得分:0)

如果您不使用IDE,您肯定希望使用Makefile来整理您的工作流程......您可以轻松地通过emacs或vim轻松完成。

无论如何,我可以建议你使用一个非常简单,几乎没有侵入性的IDE,它可以用于学习目的:http://www.bloodshed.net/devcpp.html

它附带了MinGW编译器,所以只需安装即可。

答案 8 :(得分:0)

我想开始使用Visual Studio。这是一个很棒的IDE,用于在Windows上编写C ++,也可以在它可以加速某些事情时使用它。

编译器之间的差异并不是很大 - 如果你可以在VS中编写可靠的代码,那么找出如何让代码在GCC / G ++中运行应该不成问题。

至于书籍; Herb Sutter的特殊C ++和Bjarne Stroustrup的C ++编程语言是一本很好的读物。

Visual Studio是开发Windows时的方法。