来自EPEL的亚马逊Linux上的Clang无法找到C ++标头或库

时间:2014-03-23 14:24:02

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

我正在尝试编译一个简单的hello world测试程序,只是为了让我们的CI基础结构构建盒上的东西工作,它拒绝使用clang在CentOS上编译(但在同一平台上与GCC一起正常工作)。为了完整起见,这是一个显而易见的简单程序:

#include <iostream>

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

运行clang++ test.cpp会产生:

  

test.cpp:1:10:致命错误:找不到“iostream”文件

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

Clang应该使用它自己的(可能是libc ++),并且默认情况下知道系统中的头和库的位置(至少对于像iostream这样的东西)。

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

2 个答案:

答案 0 :(得分:1)

这是由&#34;三倍&#34;没有被定义为支持亚马逊Linux。请参阅original patchapplication for EPEL on EL6

答案 1 :(得分:0)

正如戴夫所说,他已经创建了新的RPM包,现在正在进行EPEL测试。您可以立即在Amazon Linux上安装它们,如下所示:

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

一旦对包进行进一步测试,它们将处于EPEL状态(稳定)并可使用clang install进行安装。