我正在尝试编译一个简单的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包可能没有正确配置,是这种情况吗?任何帮助将不胜感激。
答案 0 :(得分:1)
这是由&#34;三倍&#34;没有被定义为支持亚马逊Linux。请参阅original patch和application for EPEL on EL6。
答案 1 :(得分:0)
正如戴夫所说,他已经创建了新的RPM包,现在正在进行EPEL测试。您可以立即在Amazon Linux上安装它们,如下所示:
yum --enablerepo=epel-testing --nogpgcheck install clang
一旦对包进行进一步测试,它们将处于EPEL状态(稳定)并可使用clang install进行安装。