来自 EPEL 的 Amazon Linux 上的 Clang 找不到C++标头或库
Clang on Amazon Linux from EPEL can't find C++ headers or libraries
我试图编译一个简单的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中,但是必须指定include来编译这样的东西似乎很奇怪。
Clang应该使用自己的(可能是libc++),并且默认情况下知道头文件和库文件在系统中的位置(至少对于iostream之类的东西)。
编译和运行程序在GCC中工作得很好。看起来clang的EPEL包可能没有正确配置,是这样吗?
正如Dave提到的,他已经创建了新的RPM包,现在正在进行EPEL测试。你现在可以在Amazon Linux上安装它们,像这样:
yum --enablerepo=epel-testing --nogpgcheck install clang
一旦这些包经过进一步的测试,它们将在EPEL中正常运行(稳定),并且可以使用clang install安装。
这是由于没有定义"三元组"来支持Amazon Linux造成的。
相关文章:
- std::map<struct,struct>::find 找不到匹配项,但是如果我循环通过 begin() 到 end(),我在那里看到匹配项
- 找不到成员对象:没有名为get_event()的成员,也处理多态性和向量
- 为什么野牛仍在使用"int yylex(void)",却找不到"int yylex(YYS
- C++ Windows 驱动程序MSB3030无法复制该文件,因为它找不到
- 奇怪的(对我来说)返回声明 - 在谷歌上找不到任何关于它的信息
- 找不到QtResource文件中的文件
- VC++本机单元测试,找不到调试符号
- RegGetValue在当前用户下找不到名称
- 带有 -stdlib=libc++ 的 clang++ 9.0.1 找不到<optional>
- c++找不到具有相同哈希的无序集合元素
- 找不到以下加速库:boost_fiber
- 找不到 FLTK(缺少:FLTK_INCLUDE_DIR)
- 设置 Visual Studio for MPI: 找不到标识符错误
- "assimp/config.h"找不到,但它在文件夹中
- 链接器找不到在虚拟类 c++ 中访问的静态字段的符号
- C++系统找不到指定的文件错误
- FindPackageHandleStandardArgs.cmake:137 的 CMake 错误(消息):找不到 Boost (缺少:正则表达式)(找到合适的版本"1.72.0",
- vcpkg 添加新库,但找不到
- Qt 5.11.2 (Clang 8.0 (Apple), 64 位), 找不到 QJSEngine 文件
- 找不到Linux Visual Studio代码C++文件