在Windows下,我安装了MinGW和Eclipse,并使用MinGW GCC工具链创建了一个名为foo的新C++项目,并编译,运行甚至调试。精彩。Linux上的C++ hello world
仍然在Windows下,我安装了Cygwin,一个强调我的互联网连接的史诗事业。最终我指定了Cygwin GCC工具链和一个bar的项目名称。这编译和运行,但不能通过调试步骤(声称它找不到源)。
在Linux下,mint13特别安装了Eclipse的全部歌曲全跳C++版本,并创建了一个新的C++项目,并选择了更加鼓舞人心的baz名称和Linux GCC工具链。 Eclipse抱怨它找不到iostream。
我对此感到困惑。如果我启动一个终端窗口并运行g ++,那么很显然,我至少有一些GNU C++的东西。我不知道缺少什么。 Linux对我来说是一个新世界。有谁可以提供指导吗?
根据记录,生成的代码是在一个名为Foo.cpp中的文件(或bar.cpp根据项目名称),看起来像这样:
#include <iostream>
using namespace std;
int main() {
cout << "Hello World" << endl; // prints Hello World
return 0;
}
@bmargulies - 我知道你的意见是舌头在脸颊,但我不会使用粉红色的emacs。我会设置SAMBA并在Windows工作站上使用Textpad,因为我有足够的学习空间而不必学习使用新的文本编辑器。我之所以选择Eclipse是因为它可能提供了一个集成调试器的工作基准,从而可以在Linux上探索C++的新世界。结合MinGW,确实在Windows上提供了。
我知道这里的大问题不是工具,它是我对来自不同世界的无知和一系列期望。由于缺乏C++的经验,这使得C++的使用经验更加复杂 - 我在C++中的唯一经历是15年前使用TurboC。
一个非常混乱的来源是用于解决库引用的机制。
很多项目似乎都使用make,据我所知,这是一种脚本文件,用于编译和链接一个项目或一组项目。 Make似乎有各种各样的味道,似乎也有使用makefile的替代方法,以及其他替代方法。
[咒骂]真是一团糟。 @Basile - 我并不喜欢使用Eclipse,而且我非常清楚脚本优于点击使用IDE配置的好处(其中最重要的是可以源代码控制构建过程)。我感谢你的阅读清单。也许这是一个愚蠢的(或过早的)问题,但我必须问:没有像集成编辑器和构建工具的Eclipse这样的IDE,是否可以进行逐步调试?
@bmargulies - 我同意你的观点,工具链定义可能有问题,但我缺乏进行有意义的调查的背景和经验。如上所述,我在Windows下使用不同的工具链获得了不同程度的成功,所以有理由得出结论,工具链是问题中的重要因素。唉,我不能在Linux下选择MinGW工具链。
继规范的意见,我能够从一个命令行编译Foo.cpp中。hello world程序以期望的行为执行,但我仍然不知道g ++如何在幻想IDE工具不知道如何解析iostream。
向foo添加了几行代码并对其进行编译,以尝试gdb。有用!无论谁想象你都可以通过终端窗口进行逐步调试!虽然这有点笨拙。
尽管Basile显然不需要花哨的IDE,但这有点像说我不需要我的摩托车,因为我可以走路。我会看看其他所提到的IDE,但我怀疑他们都会使用相同的工具链,因此所有人都会被我错误配置的任何类似东西所困扰。
巴西尔,原谅我移动球门柱。我最初的目标确实是“编译并运行hello.cpp”,但gdb不可避免地是下一步。它的工作原理,如果这是80年代初在uni上使用电传打字机的话,我现在可能会很开心。但这不是八十年代初期,我花了近十年的时间来处理语法着色,自动完成,变量嗅探编辑和继续调试,所以现在我想要的是(不知所云的草皮,现在我想要的),所有的东西!
使用gnu emacs代替Eclipse进行C++开发:-) – bmargulies
严重的是,Eclipse中的工具链定义存在问题。 – bmargulies
您只需要'g ++'在Linux上编译C++代码(不需要Eclipse或IDE)。但是你需要正确地调用它,学习如何使用'make'和编译'Makefile'-s等构建器会有所帮助。因此,在编辑器(Emacs,Gedit,Geany ..)中编写'helloworld.cpp',学会编写'Makefile',键入'make'来构建程序,'helloworld'来运行它。 –