如何在CentOS 7上安装Clang和LLVM 3.9

See*_*wal 11 llvm clang

我从https://copr-be.cloud.fedoraproject.org/results/alonid/llvm-3.9.0/epel-7-x86_64/00505197-clang-3.9.0/获取了rpm包, 用于Clang 3.9.

我正在通过命令安装rpm包

rpm -ivh clang-3.9.0-3.9.0-3.1.el7.centos.alonid.src.rpm
Run Code Online (Sandbox Code Playgroud)

但是,当我这样做

rpm -ivh clang-3.9.0-3.9.0-3.1.el7.centos.alonid.x86_64.rpm
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

error: Failed dependencies:
    clang-3.9.0-libs(x86-64) = 3.9.0-3.1.el7.centos.alonid is needed by clang-3.9.0-3.9.0-3.1.el7.centos.alonid.x86_64
    libLLVM-3.9.so()(64bit) is needed by clang-3.9.0-3.9.0-3.1.el7.centos.alonid.x86_64
    libclang.so.3.9()(64bit) is needed by clang-3.9.0-3.9.0-3.1.el7.centos.alonid.x86_64
    libclangAST.so()(64bit) is needed by clang-3.9.0-3.9.0-3.1.el7.centos.alonid.x86_64
    libclangBasic.so()(64bit) is needed by clang-3.9.0-3.9.0-3.1.el7.centos.alonid.x86_64
    libclangCodeGen.so()(64bit) is needed by clang-3.9.0-3.9.0-3.1.el7.centos.alonid.x86_64
    libclangDriver.so()(64bit) is needed by clang-3.9.0-3.9.0-3.1.el7.centos.alonid.x86_64
    libclangFormat.so()(64bit) is needed by clang-3.9.0-3.9.0-3.1.el7.centos.alonid.x86_64
    libclangFrontend.so()(64bit) is needed by clang-3.9.0-3.9.0-3.1.el7.centos.alonid.x86_64
    libclangFrontendTool.so()(64bit) is needed by clang-3.9.0-3.9.0-3.1.el7.centos.alonid.x86_64
    libclangIndex.so()(64bit) is needed by clang-3.9.0-3.9.0-3.1.el7.centos.alonid.x86_64
    libclangRewrite.so()(64bit) is needed by clang-3.9.0-3.9.0-3.1.el7.centos.alonid.x86_64
    libclangRewriteFrontend.so()(64bit) is needed by clang-3.9.0-3.9.0-3.1.el7.centos.alonid.x86_64
    libclangStaticAnalyzerFrontend.so()(64bit) is needed by clang-3.9.0-3.9.0-3.1.el7.centos.alonid.x86_64
    libclangTooling.so()(64bit) is needed by clang-3.9.0-3.9.0-3.1.el7.centos.alonid.x86_64
    libclangToolingCore.so()(64bit) is needed by clang-3.9.0-3.9.0-3.1.el7.centos.alonid.x86_64
Run Code Online (Sandbox Code Playgroud)

我应该从哪里安装所有这些依赖项?

pho*_*nix 29

通过启用SCL存储库,您可以使用该llvm-toolset-7软件包在CentOS 7上安装Clang 4 .

$ sudo yum install centos-release-scl
$ sudo yum install llvm-toolset-7
Run Code Online (Sandbox Code Playgroud)

启用llvm-toolset-7:

$ scl enable llvm-toolset-7 bash
Run Code Online (Sandbox Code Playgroud)

你现在可以检查你的铿锵版:

$ clang --version
Run Code Online (Sandbox Code Playgroud)

有关更多信息,请参阅此Red Hat博客文章.

有关SCL的更多信息,请参阅此页面.

  • 此时安装 llvm-toolset-7 提供 clang 版本 5.0.1 (3认同)

小智 6

有一种更简单的方法来实现这一目标:

添加Alonid的回购/etc/yum.repos.d/epel.repo(假设你安装了epel repo)

echo "[alonid-llvm-3.9.0]
name=Copr repo for llvm-3.9.0 owned by alonid
baseurl=https://copr-be.cloud.fedoraproject.org/results/alonid/llvm-
3.9.0/epel-7-$basearch/
type=rpm-md
skip_if_unavailable=True
gpgcheck=1
gpgkey=https://copr-be.cloud.fedoraproject.org/results/alonid/llvm-
3.9.0/pubkey.gpg
repo_gpgcheck=0
enabled=1
enabled_metadata=1" >> /etc/yum.repos.d/epel.repo
Run Code Online (Sandbox Code Playgroud)

然后就是 sudo yum install clang-3.9.0


Dan*_*oni 6

我是您提到的RPM存储库的作者。

从存储库的Copr主页上进行以下操作:

https://copr.fedorainfracloud.org/coprs/alonid/llvm-3.9.0/

如果您有任何疑问,可以从那里与我联系。谢谢!

  • 这是仅链接的答案。 (2认同)

Sta*_*ich 1

只需打开您的链接并环顾四周,也可以上一级并找到所有必要的.rpm内容。以下顺序对我有用:

yum install compiler-rt-3.9.0-3.9.0-3.el7.centos.alonid.x86_64.rpm
yum install clang-3.9.0-libs-3.9.0-3.1.el7.centos.alonid.x86_64.rpm
yum install clang-3.9.0-3.9.0-3.1.el7.centos.alonid.x86_64.rpm
yum install llvm-3.9.0-libs-3.9.0-7.el7.centos.alonid.x86_64.rpm
yum install llvm-3.9.0-3.9.0-7.el7.centos.alonid.x86_64.rpm
yum install llvm-3.9.0-devel-3.9.0-7.el7.centos.alonid.x86_64.rpm
Run Code Online (Sandbox Code Playgroud)

通过不使用yum install任何标志,Clang 和 LLVM 将安装到/opt/llvm-3.9.0

$ ls -l /opt/llvm-3.9.0 
total 12
drwxr-xr-x 2 root root 4096 Jun  3 23:48 bin
drwxr-xr-x 3 root root 4096 Jun  3 23:23 include
drwxr-xr-x 3 root root 4096 Jun  3 23:27 lib64
Run Code Online (Sandbox Code Playgroud)

另请注意,还有其他软件包,例如-devel, -static, -debuginfo

有用的提示:如果不安装-devel软件包,您只能获得仅包含可执行文件和库之类的bin文件夹。如果您还想使用 LLVM/Clang 开发一些东西,您将需要相应的包。然后您还将获得带有标题的文件夹。lib64bin/clanglib64/libLLVM-3.9.0.so-develinclude/

顺便说一下,感谢这个仓库的维护者。很高兴开箱即用 LLVM 3.9。