2014-01-05 43 views
0

我想要开始使用C++。我在安装Mavericks操作系统的Mac上。非常简单的程序Clang编译器错误

我试图编译的程序是:

#include <iostream> 

int main() 
{ 
    std::cout << "Enter two numbers:" << std::endl; 

    return 0; 
} 

这里是CC的版本:

Apple LLVM version 5.0 (clang-500.2.79) (based on LLVM 3.3svn) 
Target: x86_64-apple-darwin13.0.0 
Thread model: posix 

然而,当我尝试编译:

cc test.cc 

我收到以下错误:

... 
std::__1::basic_ostream<char, std::__1::char_traits<char> >& std::__1::operator<<<std::__1::char_traits<char> >(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, char const*) in test-AeQQK5.o 
    ___clang_call_terminate in test-AeQQK5.o 
"___cxa_end_catch", referenced from: 
std::__1::basic_ostream<char, std::__1::char_traits<char> >& std::__1::operator<<<std::__1::char_traits<char> >(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, char const*) in test-AeQQK5.o 
"___gxx_personality_v0", referenced from: 
    std::__1::basic_ostream<char, std::__1::char_traits<char> >& std::__1::operator<<<std::__1::char_traits<char> >(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, char const*) in test-AeQQK5.o 
    std::__1::ostreambuf_iterator<char, std::__1::char_traits<char> > std::__1::__pad_and_output<char, std::__1::char_traits<char> >(std::__1::ostreambuf_iterator<char, std::__1::char_traits<char> >, char const*, char const*, char const*, std::__1::ios_base&, char) in test-AeQQK5.o 
    Dwarf Exception Unwind Info (__eh_frame) in test-AeQQK5.o 
ld: symbol(s) not found for architecture x86_64 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 

我在做什么错?

+0

为什么会倒票? – TheBuzzSaw

+0

@TheBuzzSaw向下箭头上的工具提示说明了这一切:“**这个问题没有显示研究工作,**不清楚或**没有用处。**”此外,“问题必须证明对问题的最小理解解决了”。 – 2014-01-05 17:26:46

+0

我认为这有点苛刻。他清楚地发现了编译器,但不知道有两种模式。 – TheBuzzSaw

回答

2

您正在编译为C程序。在几个警告标志太

c++ test.cc

更好的罚球:编译它作为一个C++程序,而不是

c++ -Wall -Wextra -pedantic-errors test.cc

+0

谢谢!我正在阅读的C++书中说使用cc,很奇怪。 – ConditionRacer

+0

@RandomParentheses把这本书扔到很远的地方(但是只有在你用汽油将它烧了之后)。这些都是那种蹩脚的书,后来会断言“数组是指针”,“引用是指针”以及所有其他流行的(和可怕的)恶作剧。 – 2014-01-05 17:35:53

+0

@ H2CO3这实际上是“C++ Primer”,这是这里提到的顶级初学书籍:http://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list – ConditionRacer

1

你需要运行clang++,不只是clang

1

虽然使用gcc编译C++源代码* .cc非常好(它将C++源文件作为扩展名处理),但链接器还需要显式信息才能链接到正确的C++库。

(注:我认为ng和gcc在这个问题上是类似的)