不能在C 文件中包括标准库

Cannot include standard libraries in C++ file

本文关键字:包括 标准 文件 不能      更新时间:2023-10-16
#include <iostream>
using namespace std;
int main(){
    std::cout << "Hello Worldn";
    return 0;
}

命令1(works)

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

编译

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

clang++ hello.cc -o hello

如果不作为C 编译器运行clang,它将没有C 标准库标头供您包含。使用clang++可用C 标准库标题,C 标准库自动为您链接。

这是一个已知的ubuntu问题。他们的clang只是不正确的设置。我在这里抱怨它 - 多年来一直没有解决。

但是,好消息现在它可以与最近的16.10版本一起使用。

编辑:基于您更新的问题,我会说"自定义clang"不知道其包含文件。