c++ - 来自 EPEL 的 Amazon Linux 上的 Clang 无法找到 C++ header 或库

标签 c++ linux amazon-web-services centos clang

我正在尝试编译一个简单的 hello world 测试程序,只是为了让事情在我们的 CI 基础设施构建盒上运行,它拒绝在 CentOS 上使用 clang 进行编译(但在同一平台上与 GCC 一起工作正常)。为了完整起见,这里是一个明显微不足道的程序:

#include <iostream>

int main(){
    std::cout << "wow" << std::endl;
    return 0;
}

运行 clang++ test.cpp 产生:

test.cpp:1:10: fatal error: 'iostream' file not found

我用一个简单的 sudo yum install clang 安装了它,可以看到当 GCC 安装在 Amazon Linux 上时,它带有自己的 libstdc++ header ,位于/usr/include/c++/gcc-版本,但必须指定包含来编译这样的东西似乎很奇怪。

Clang 应该使用它自己的(可能是 libc++)来代替,并且默认情况下知道 header 和库在系统上的位置(至少对于 iostream 之类的东西)。

在这里使用 GCC 编译和运行程序工作得很好。似乎 clang 的 EPEL 包可能没有正确配置,是这样吗?任何帮助将不胜感激。

最佳答案

正如 Dave 提到的,他创建了新的 RPM 包,这些包现在正在 EPEL 测试中。您现在可以像这样在 Amazon Linux 上安装它们:

yum --enablerepo=epel-testing --nogpgcheck install clang

一旦软件包经过进一步测试,它们将在 EPEL 中正常(稳定)并且可以使用 clang install 安装。

关于c++ - 来自 EPEL 的 Amazon Linux 上的 Clang 无法找到 C++ header 或库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22592128/

相关文章:

c++ - 指针容器

c++ - 使用 gnu 缩进如何将 int * 变为 int*

Java - RandomAccessFile(模拟 Linux tail 函数)

amazon-web-services - 当 ec2 实例终止时创建电子邮件通知。电子邮件应包含实例详细信息。例如 :Instance Name

python - 如何使用 python 在 aws s3 预签名的 url 中隐藏我的访问 key

c++ - Qt C++无法调用没有对象的成员函数 ' '

c++ - 实现文件中的实例变量——私有(private)与 protected

c - Linux 输入驱动程序中的 NULL 指针取消引用

linux - 读/写字符设备时如何避免高CPU使用率?

node.js - 如何将缓冲区保存到 S3 存储桶中