让 clang 在 Fedora 15 上运行

让 clang 在 Fedora 15 上运行

我已经通过 yum 安装了 clang:

yum install clang

不幸的是,即使是简单的“Hello World!”也无法编译,因为它试图使用 libstdc++4.6 的标头(我认为它具有 c++0x 功能,但 clang 无法理解)。我找不到 libstdc++4.5 包,只有 F14 包,但显然没有安装。

我甚至尝试安装 2.9 二进制文件,还自己编译并安装了 svn trunk。但这些都无济于事。

我记得在 ubuntu 上遇到过同样的问题,但我能够通过安装 libstdc++4.5 标头来解决它。

那么,人们如何在 Fedora 上使用 clang?

答案1

正如你所知,漏洞漏洞在 llvm 中为 libstdc++4.6。我刚刚用主干中的 clang 编译了 llvm,根据这个指示

您必须配置包含路径,我使用此命令在 F15 x86_64 上进行配置和编译:

../llvm/configure \
  --enable-optimized \
  --disable-assertions \
  --enable-jit \
  --enable-libffi \
  --enable-shared \
  --with-c-include-dirs=/usr/include:$(find /usr/lib/gcc/*/* \
        -maxdepth 0 -type d)/include \
  --with-cxx-include-32bit-dir=32 \
  --with-cxx-include-root=$(find /usr/include/c++/* -maxdepth 0 -type d) \
  --with-cxx-include-arch=x86_64-redhat-linux

make -j3
sudo make install

然后我就可以编译 hello world

#include <iostream>

int main() {
  std::cout << "Hello, World!\n";
  return 0;
}

clang -o hello hello.cpp -lstdc++

$ ./hello 
Hello, World!

本文档也可能令人感兴趣。

我想还有另一种方法,但我自己还没尝试过。

由于 2.8 上存在一些 mesa 依赖关系,因此 Fedora llvm 2.9 二进制文件无法运行。

希望这可以帮助 :)

相关内容