不能在C ++文件中包含标准库

时间:2016-12-12 17:27:30

标签: c++ macos clang

#include <iostream>
using namespace std;

int main(){
    std::cout << "Hello World\n";
    return 0;
}

命令1(有效)

clang hello.cc -o hello -lc++

命令2(不起作用)

/path/to/custom/clang hello.cc -o hello -lc++

main.cc:2:10: fatal error: 'iostream' file not found
#include <iostream>
         ^
1 error generated.

为什么我无法使用command 2进行编译?

2 个答案:

答案 0 :(得分:3)

看起来您正在尝试使用C编译器编译C ++。请尝试改为运行clang++

clang++ hello.cc -o hello

如果不将clang作为C ++编译器运行,它将不具备可供您包含的C ++标准库头。使用clang++可以使用C ++标准库头文件,并自动链接C ++标准库。

答案 1 :(得分:1)

这是一个已知的Ubuntu问题。他们的clang只是没有正确设置。我抱怨它here - 这种情况多年来一直没有固定。

好消息是它现在适用于最新的16.10版本。

编辑:根据您更新的问题,我会说“自定义铿锵”并不知道其包含文件。