【发布时间】:2014-04-19 18:11:27
【问题描述】:
以下 Hello World 程序在 Xcode 中编译,但在终端中使用 via clang 编译时不能:
#include <iostream>
int main()
{
std::cout << "Hello World!";
}
具体来说,我使用的命令是:
clang c++test.cpp
其中 c++test 是文件的名称。 这会产生一堆乱码错误,例如:
(std::__1::ostreambuf_iterator<char, std::__1::char_traits<char> >, char const*, char const*,
char const*, std::__1::ios_base&, char) in c++test-497cf6.o
还有这个:
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
我检查了一下,系统上出现了 c++ 库,所以我很确定我正在做一些工作。是否有我需要链接到的 -framework?
【问题讨论】:
-
不是原因,而是将
return 0添加到main并尝试更改文件名(删除++符号) -
您的错误是胡言乱语,因为您没有阅读整个内容。而且您甚至都懒得发布整个错误。
-
@bolov: Re:
return 0,不,这根本不需要,参见例如stackoverflow.com/questions/22239/why-does-int-main-compile -
@rubenvb:是的,它是重复的。我很抱歉。我筛选了几个答案相似的问题,但“我的代码无法编译”是一个非常常见的问题。
-
@Dan:我没有发布错误,因为有一百行 em。而且我不认为(我是对的)这部分错误与答案相关。