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

时间:2015-05-30 17:59:38

标签: linux ubuntu clang++

我刚刚在我的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

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

如何让update-alternatives包含clang ++ 3.6?

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

2 个答案:

答案 0 :(得分: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

答案 1 :(得分: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

选择clang的版本,然后选择cc:

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

设置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)

优先级最高的选项是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

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

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