我已经通过 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 二进制文件无法运行。
希望这可以帮助 :)