我已经通过 yum 安装了 clang:
yum install clang
Run Code Online (Sandbox Code Playgroud)
不幸的是,即使是一个简单的“Hello World!” 不会编译,因为它试图使用 libstdc++4.6 的头文件(我认为它具有 c++ 0x 不理解的特性)。我找不到 libstdc++4.5 包,仅适用于显然没有安装的 F14。
我什至尝试安装 2.9 二进制文件,并为自己编译和安装了 svn 主干。这些都没有帮助。
我记得在 ubuntu 上遇到过同样的问题,但我能够通过安装 libstdc++4.5 头文件来解决它。
那么,人们如何在 Fedora 上使用 clang?
小智 3
如您所知, libstdc++4.6 的 llvm 中存在bug和bug 。我刚刚根据此说明使用 trunk 中的 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
Run Code Online (Sandbox Code Playgroud)
我能够编译 hello world
#include <iostream>
int main() {
std::cout << "Hello, World!\n";
return 0;
}
Run Code Online (Sandbox Code Playgroud)
和
clang -o hello hello.cpp -lstdc++
$ ./hello
Hello, World!
Run Code Online (Sandbox Code Playgroud)
该文档可能也会引起您的兴趣。
我想有一种替代方法可以使用libc++,但我自己还没有尝试过。
Fedora llvm 2.9 二进制文件将无法工作,因为某些 mesa 依赖于 2.8。
希望这可以帮助 :)
| 归档时间: |
|
| 查看次数: |
3344 次 |
| 最近记录: |