我在Ubuntu 12.04上运行Eclipse CDT(Eclipse v.4.2)。当我创建一个C++项目(在项目类型 - >可执行 - > Hello World C++项目中)并选择Linux GCC工具链时,标准hello world应用程序编译并运行得很好。当我试图创建一个空的项目(从同样的菜单,之前),选择Linux的GCC工具链也,它带来了一些构建错误:eclipse 4.2 cdt与Ubuntu 12.04配置
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'
当我比较路径设置(属性 - > C/C++生成和C/C + +一般)为由“Hello World C++项目”生成的.cpp文件,并为.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;
}
在此先感谢。