2016-03-01 110 views
0

我是新来的编程和C++,并刚在我的电脑上安装了C++和XCode。我已将Mac OSX GCC作为我的首选工具链。在OSX上的Eclipse C++无法编译

我似乎甚至没有得到一个简单的Hello World程序来运行,我真的需要一些帮助,我之前已经发布过,四处张望,但没有任何东西似乎帮助我。

代码:点击构建毕竟

#include <iostream> 
using namespace std; 

int main() { 
    cout << "Hello world \n"; 
    return 0; 
} 

错误:

12:38:22 **** Incremental Build of configuration Debug for project Test1 **** 
make all 
Building file: ../test.cpp 
Invoking: GCC C++ Compiler 
g++ -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"test.d" -MT"test.o" -o "test.o" "../test.cpp" 
Finished building: ../test.cpp 

Building target: Test1 
Invoking: MacOS X C++ Linker 
g++ -o "Test1" ./test.o 
Undefined symbols for architecture x86_64: 
    "_main", referenced from: 
    implicit entry/start for main executable 
ld: symbol(s) not found for architecture x86_64 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 
make: *** [Test1] Error 1 

12:38:37 Build Finished (took 15s.286ms) 

Screenshot

+0

您应该提及您是哪个版本的max OS X.这很重要,因为这些天的默认C++编译器是clang,不再是gnu(g ++)。 – steve

+0

我在OSX El Capitan 10.11.3 – Panthy

+0

看着你的截图,我注意到这个文件被标记为未保存。如果在第一次保存之后添加了主函数,然后尝试重新编译而不保存,则会出现此错误,因为可执行文件必须具有main的定义。你确定在编译之前保存了这个文件吗? –

回答

1

你提到你刚刚安装的XCode。如果您希望开始使用C++编程,那么使用XCode可以使您的体验更加令人满意,并且比使用Eclipse更快地学习曲线。 XCode是Mac上的“本地”IDE。

说了这话之后,我明白可能有使用Eclipse的原因,如果您希望在不久的将来在非Apple平台上开始编程,或者希望熟悉Eclipse作为IDE进行Android编程。但是,如果你打算在Mac上呆一段时间并想更快地选择C++,我强烈建议坚持使用XCode。

现在,您显示的错误可能是因为该文件尚未保存,正如其中一位评论者所建议的那样。如果main()缺失,那就是你所得到的错误。