问题描述
我刚刚在我的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包。