【问题标题】:How to choose the LLVM version clang is using?如何选择 clang 使用的 LLVM 版本?
【发布时间】:2013-02-19 16:17:07
【问题描述】:

也许太明显了,但我还没有看到答案:

我尝试在 Ubuntu 下使用 clang 编译我的项目,但不幸的是 llvm 因堆栈转储而崩溃。

$ clang --version
Ubuntu clang version 3.0-6ubuntu3 (tags/RELEASE_30/final) (based on LLVM 3.0)
Target: i386-pc-linux-gnu
Thread model: posix

我想试试 LLVM 2.9,安装了它,但是我该如何选择呢?例如:

$ ll /usr/bin/llvm-ar*
lrwxrwxrwx 1 root root 27 Sep 12 16:43 /usr/bin/llvm-ar -> ../lib/llvm-3.1/bin/llvm-ar*
lrwxrwxrwx 1 root root 27 May 21  2012 /usr/bin/llvm-ar-2.9 -> ../lib/llvm-2.9/bin/llvm-ar*
lrwxrwxrwx 1 root root 27 Aug 27 20:31 /usr/bin/llvm-ar-3.0 -> ../lib/llvm-3.0/bin/llvm-ar*
lrwxrwxrwx 1 root root 27 Aug 28 17:49 /usr/bin/llvm-ar-3.1 -> ../lib/llvm-3.1/bin/llvm-ar*
$ ll /usr/bin/clang*
-rwxr-xr-x 1 root root 12686228 Apr 25  2012 /usr/bin/clang*
lrwxrwxrwx 1 root root        5 Apr 25  2012 /usr/bin/clang++ -> clang*

Clang 作为命令只存在一次,我没有看到它的命令行选项来选择 llvm 后端。我错过了什么吗?

【问题讨论】:

  • 3.2 已经发布,尝试 2.9 没有多大意义。只需下载最新版本并使用您喜欢的任何前缀构建它,对于 configure 使用 --prefix 选项或对于 CMake 构建使用 -DCMAKE_INSTALL_PREFIX:PATH=whatever

标签: llvm clang


【解决方案1】:

Clang 与 LLVM 静态链接,因此您无法在此处试图暗示的意义上将两者分开。

您可以按照通常的编译器安装说明单独安装 Clang 2.9,然后使用它编译您的项目。

【讨论】:

  • 但是我只有一个 clang,在 ubuntu 存储库中我找不到任何其他的。我想这意味着手动安装:-(
  • @Borph:手动安装很容易,因为您可以在项目网站上找到预编译的 Ubuntu 二进制文件
【解决方案2】:

我尝试了很多选择,这里最适合我的选择。

删除所有现有版本的 llvm/clang。要获得完整列表,请运行以下命令:

dpkg -l | egrep -i "clang|llvm"

就我而言,我必须至少保留“libllvm5.0:amd64”,因为许多软件包都依赖它。

http://releases.llvm.org/download.html 下载预构建版本并验证签名。

gpg --verify clang+llvm-[VERSION].tar.xz.sig

将内容提取到某个文件夹。

sudo tar -xf archive.tar -C /opt/clang+llvm-[VERSION]

将此行添加到 .bashrc 的完整末尾或手动运行以更改版本。

export PATH="/opt/clang+llvm-[VERSION]/bin:$PATH"

另一种选择是使用更新替代方案。

#!/bin/bash -ex

DIR=/opt/clang+llvm-[VERSION]/bin

sudo update-alternatives \
--install /usr/bin/clang        clang       "$DIR/clang" 100 \
--slave   /usr/bin/clang++      clang++     "$DIR/clang++"

如果安装了超过 1 个版本,则使用此命令。

sudo update-alternatives --config clang

检查系统是否配置正确。

llvm-config --prefix --version
clang --version

【讨论】:

    【解决方案3】:

    由于 LLVM 3.2 已经发布,而我在 Ubuntu 上,这解决了它的痛苦:

    sudo add-apt-repository ppa:georgekola/clang
    sudo apt-get update
    sudo apt-get install clang
    

    【讨论】:

      猜你喜欢
      • 2017-03-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-23
      • 1970-01-01
      • 2014-12-12
      • 1970-01-01
      • 2021-05-27
      相关资源
      最近更新 更多