在Ubuntu上安装了clang ++ 3.6,无法选择替代

mor*_*ort 22 linux ubuntu clang++

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

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

告诉我

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

和clang ++没有显示出来

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

要么(这是预期的).但编译器肯定有效:

which clang++-3.6 
/usr/bin/clang++-3.6
Run Code Online (Sandbox Code Playgroud)

我的操作系统版本是Ubuntu 14.04.1 LTS.

我需要做些什么来update-alternatives包括clang ++ 3.6?

注意:我之前使用过clang3.4,但删除了它,因为它不支持我需要的所有c ++ 11功能.这似乎只是安装clang ++包时安装的版本(我特意安装了clang ++ 3.6); update-alternativesDID适用于该版本.

小智 19

这些对我有用:

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
Run Code Online (Sandbox Code Playgroud)


ric*_*usa 10

既然clang是直接引用的,也可以通过cc引用,我会将其分解为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
Run Code Online (Sandbox Code Playgroud)

要选择clang和cc的版本:

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

设置clang/clang ++.clang的多个版本与Ubuntu一起打包.例如,在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)
Run Code Online (Sandbox Code Playgroud)

优先级最高的选择是auto,其余的是手动选择.因此,如果我的默认值是最新版本,则安装了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
Run Code Online (Sandbox Code Playgroud)

如果将其应用于LLDB,则您拥有相当完整的开发环境,其中包括针对多种体系结构的交叉编译器/调试器.('相当'意味着链接器LLD不够成熟,不能说完整).

注意:完整的调试器需要LLDB + Python-LLDB.python-lldb的多个版本不能同时安装,因此此时最好的选择是选择最新版本的LLDB及其相关的python包.