安装 clang-3.5 软件包后未找到 clang 和 clang++

Dr.*_*ula 32 apt clang 14.04

安装clang-3.5软件包后,在命令行中键入clangclang++会给我一条消息,说明可以在哪些软件包中找到这些程序。尝试clang-3.5再次运行安装时,apt 说明它已经安装并且是最新版本。

原始安装是使用以下命令完成的:

sudo apt-get install clang-3.5 llvm
Run Code Online (Sandbox Code Playgroud)

build-essential 之前安装过。

关于可能发生了什么的任何想法?

小智 34

它在那里,但它仍然被称为 clang-3.5。

您可以将它作为clang-3.5(或clang++-3.5)执行,也可以像我一样设置它的符号链接(安装常规 clang 不起作用):

sudo ln -s /usr/bin/clang-3.5 /usr/bin/clang
sudo ln -s /usr/bin/clang++-3.5 /usr/bin/clang++
Run Code Online (Sandbox Code Playgroud)

也许是丑陋的解决方法;但至少它现在有效:)


小智 14

使用铛作为默认的正确方法cc,并c++是使用update-alternatives

可以在单个系统上同时安装实现相同或相似功能的多个程序。例如,许多系统同时安装了多个文本编辑器。这为系统用户提供了选择,如果需要,允许每个用户使用不同的编辑器,但是如果用户没有指定特定的偏好,程序就很难做出好的编辑器选择来调用。

所以首先你需要添加clang-3.5clang++-3.5替代 eggccg++

sudo update-alternatives --install /usr/bin/cc cc /usr/bin/clang-3.5 100
sudo update-alternatives --install /usr/bin/c++ c++ /usr/bin/clang++-3.5 100
Run Code Online (Sandbox Code Playgroud)

如果您需要随时切换回gccg++可以使用以下--config选项:

sudo update-alternatives --config c++
Run Code Online (Sandbox Code Playgroud)


小智 9

在 Ubuntu 15.04 上,您还可以沿着 clang-xx 包安装 clang 包。然后您可以输入 clang++ 并找到相应的可执行文件。

sudo apt-get install clang
Run Code Online (Sandbox Code Playgroud)


小智 6

添加到 Yan Foto 的答案(以防万一您的目标是获得可用clang但不一定将其用作cc),您实际上可以一次性添加整个程序集

sudo update-alternatives --install /usr/bin/clang clang /usr/bin/clang-3.8 380 \
--slave /usr/bin/clang++ clang++ /usr/bin/clang++-3.8 \
--slave /usr/bin/clang-check clang-check /usr/bin/clang-check-3.8 \
--slave /usr/bin/clang-query clang-query /usr/bin/clang-query-3.8 \
--slave /usr/bin/clang-rename clang-rename /usr/bin/clang-rename-3.8
Run Code Online (Sandbox Code Playgroud)

(请注意,每个 clang 版本附带的二进制文件集可能不同,例如 3.6 有clang-tblgen,3.8 没有。)

如果您对安装的每个版本的 clang 重复此操作,您将能够使用单个update-alternatives命令在它们之间切换。

(同时,显然,关于是否在 Ubuntu 软件包中包含这些链接仍然存在争论:https : //bugs.launchpad.net/ubuntu/+source/llvm-3.1/+bug/991493