在 Ubuntu 上安装了 clang++3.6,不能 select 作为替代

Installed clang++3.6 on Ubuntu, can't select as alternative

我刚刚在我的 Ubuntu 机器上安装了 clang++3.6,但无法将其设置为默认的 c++ 编译器。

sudo update-alternatives --config c++ 

告诉我

There is only one alternative in link group c++ (providing /usr/bin/c++): /usr/bin/g++
Nothing to configure.

而且 clang++ 没有出现在

sudo update-alternatives --query c++

两者皆有(这是意料之中的)。但编译器确实有效:

which clang++-3.6 
/usr/bin/clang++-3.6

我的 OS 版本是 Ubuntu 14.04.1 LTS。

我需要做什么才能使 update-alternatives 包含 clang++3.6?

注意:我以前使用过 clang3.4,但由于它不支持我需要的所有 c++11 功能而将其删除。看来这还是单纯安装clang++包时安装的版本(我特地安装了clang++3.6); update-alternatives 确实适用于该版本。

这些对我有用:

sudo update-alternatives --install /usr/bin/cc cc /usr/bin/clang-3.6 100
sudo update-alternatives --install /usr/bin/c++ c++ /usr/bin/clang++-3.6 100

由于直接引用 clang 以及通过 cc 引用 clang,因此我将其分解为 clang 的替代方案和 cc 的替代方案。下面设置clang后:

sudo update-alternatives --install /usr/bin/cc cc /usr/bin/clang 100
sudo update-alternatives --install /usr/bin/c++ c++ /usr/bin/clang++ 100

到selectclang的版本,抄送:

sudo update-alternatives --config clang
sudo update-alternatives --config clang++
sudo update-alternatives --config cc
sudo update-alternatives --config c++

正在设置 clang/clang++。 Ubuntu 打包了多个版本的 clang。在 15.10 中,例如:

clang-3.4 - C, C++ and Objective-C compiler (LLVM based)
clang-3.5 - C, C++ and Objective-C compiler (LLVM based)
clang-3.6 - C, C++ and Objective-C compiler (LLVM based)
clang-3.7 - C, C++ and Objective-C compiler (LLVM based)

优先级最高的选项是自动,其余选项是手动 selected。因此,如果我的默认设置是最新的,并且安装了 4 个版本:

sudo update-alternatives --install /usr/bin/clang clang /usr/bin/clang-3.7 370
sudo update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-3.7 370
sudo update-alternatives --install /usr/bin/clang clang /usr/bin/clang-3.6 360
sudo update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-3.6 360
sudo update-alternatives --install /usr/bin/clang clang /usr/bin/clang-3.5 350
sudo update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-3.5 350
sudo update-alternatives --install /usr/bin/clang clang /usr/bin/clang-3.4 340
sudo update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-3.4 340

如果您将相同的方法应用于 LLDB,您将拥有一个相当完整的开发环境,其中包括 cross-compilers/debuggers 用于多种架构的开发环境。 ('fairly' 表示链接器 LLD 还不够成熟,不能说完整)。

注意:完整的调试器需要 LLDB + Python-LLDB。 python-lldb 的多个版本不能一起安装,所以此时最好的选择是选择最新版本的 LLDB 及其关联的 python 包。