当前位置: 首页>>技术教程>>正文


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

, ,

问题描述

我刚刚在我的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适用于该版本。

最佳解决方法

这些对我有用:

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的替代品,以及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,则您拥有相当完整的开发环境,其中包括适用于多种体系结构的cross-compilers /调试器。 (‘fairly’意味着链接器LLD不够成熟,不能说完整)。

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

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/6390.html,未经允许,请勿转载。