【问题标题】:How to install Clang and LLVM 3.9 on CentOS 7如何在 CentOS 7 上安装 Clang 和 LLVM 3.9
【发布时间】:2017-10-28 09:15:14
【问题描述】:

我已经从 https://copr-be.cloud.fedoraproject.org/results/alonid/llvm-3.9.0/epel-7-x86_64/00505197-clang-3.9.0/ 用于 Clang 3.9。

我正在通过命令安装 rpm 包

rpm -ivh clang-3.9.0-3.9.0-3.1.el7.centos.alonid.src.rpm

但是当我这样做时

rpm -ivh clang-3.9.0-3.9.0-3.1.el7.centos.alonid.x86_64.rpm

我收到以下错误:

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

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

【问题讨论】:

标签: clang llvm


【解决方案1】:

通过启用 SCL 存储库,您可以使用 llvm-toolset-7 包在 CentOS 7 上安装 Clang 5.0.1。

$ sudo yum install centos-release-scl
$ sudo yum install llvm-toolset-7

启用llvm-toolset-7

$ scl enable llvm-toolset-7 bash

您现在可以使用以下命令检查您的 clang 版本:

$ clang --version

有关更多信息,请参阅此Red Hat blog post

有关 SCL 的更多信息,请参阅this page

【讨论】:

  • 此时安装llvm-toolset-7提供clang版本5.0.1
  • 对于 2020 年阅读此帖子的任何人,scl enable 步骤应写为:scl enable llvm-toolset-7 'bash' 否则您将收到 Unable to open 错误。来源:developers.redhat.com/HW/ClangLLVM-RHEL-7
【解决方案2】:

完整的安装过程由红帽提供,请参考Red Hat documents

【讨论】:

    【解决方案3】:

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

    从存储库的主 Copr 页面进行操作:

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

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

    【讨论】:

    • 从 3.8.0 开始,clang 支持 OpenMP。我在哪里可以找到 CentOS 7 上的 clang 3.8.0 的 libomp 包?
    • 这是一个仅链接的答案。
    【解决方案4】:

    有一个更简单的方法来实现这一点:

    将 Alonid 的 repo 添加到 /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
    

    那就sudo yum install clang-3.9.0

    【讨论】:

    • 你需要转义$basearch中的$..否则shell会吃掉它
    【解决方案5】:

    只需打开your link 并环顾四周,再上一层并找到所有必要的.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
    

    只需执行 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
    

    还要注意还有其他包,例如-devel-static-debuginfo

    有用的提示:如果不安装 -devel 软件包,您只会得到 binlib64 文件夹,其中只有像 bin/clang 这样的可执行文件和像 lib64/libLLVM-3.9.0.so 这样的库所在的文件夹。如果您还想使用 LLVM/Clang 开发一些东西,您将需要相应的 -devel 包。然后您还将获得带有标题的include/ 文件夹。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-13
      • 2018-05-28
      • 2023-03-22
      • 2019-07-03
      相关资源
      最近更新 更多