我在Ubuntu 12.04上运行Eclipse CDT(Eclipse v.4.2)。当我创建一个C ++项目(在项目类型 - >可执行文件 - > Hello World C ++项目)并选择Linux GCC工具链时,标准的hello world应用程序编译并运行得很好。当我尝试创建一个空项目(从之前的菜单中),选择Linux GCC工具链时,它会带来几个构建错误:
make:***[tst] Error 1
Symbol 'cout' could not be resolved
Symbol 'endl' could not be resolved
Symbol 'std' could not be resolved
undefined reference to 'main'
当我比较“Hello World C ++ Project”生成的.cpp文件的路径设置(属性 - > C / C ++ Build和C / C ++ General)时,以及添加到“空”的.cpp文件项目“他们有相同的配置和设置,所以我不确定为什么空项目没有检测到标准库和编译。包含文件夹中的所有文件也是相同的。这也发生在我的Windows 7(MingW编译器)安装和我的MacOS X安装上。现在我可以创建我的项目作为“Hello World C ++项目”,摆脱文本和代码我想要的东西,但我真的很好奇如何从头开始设置它,特别是因为我的理解是在Executable文件夹下创建一个“Empty Project”(而不是创建一个Makefile项目)应该包含一个makefile和所有必需的路径(只要选择了正确的工具链?)。
CDT控制台的实际构建错误是:
20:49:26 **** Incremental Build of configuration Debug for project tst ****
make all
Building target: tst
Invoking: GCC C++ Linker
g++ -o "tst" ./src/test.o
/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../x86_64-linux-gnu/crt1.o: In function `_start':
(.text+0x20): undefined reference to `main'
collect2: ld returned 1 exit status
make: *** [tst] Error 1
20:49:26 Build Finished (took 62ms)
我正在尝试运行的代码只是eclipse生成的默认hello world代码:
#include <iostream>
using namespace std;
int main() {
cout << "!!!Hello World!!!" << endl; // prints !!!Hello World!!!
return 0;
}
提前致谢。
答案 0 :(得分:0)
我已经看到一些在杂志上销售的Ubuntu 12.04 DVD默认不安装gnu G ++。转到Ubuntu软件中心并安装G ++(GNU C ++编译器工具链)。安装完成后,在IDE左侧的Eclipse Project Explorer中右键单击项目名称。在“索引”项下选择“重建”。这应该解决iostream include等问题。