【问题标题】:How to set clang as default compiler using update-alternatives如何使用 update-alternatives 将 clang 设置为默认编译器
【发布时间】:2019-04-22 19:35:16
【问题描述】:

我使用 Ubuntu 18.04,我有两个 gcc/g++ 版本,它们使用更新替代方案进行管理:

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 100 --slave /usr/bin/g++ g++ /usr/bin/g++-7
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 50 --slave /usr/bin/g++ g++ /usr/bin/g++-4.8

我可以使用这个命令切换编译器:

sudo update-alternatives --config gcc

我注意到我有以下编译器链(在本例中为 gcc-7/g++-7):/usr/bin/cc -> /etc/alternatives/cc -> /usr/bin/gcc -> /etc/alternatives/gcc -> /usr/bin/gcc-7 /usr/bin/c++ -> /etc/alternatives/c++ -> /usr/bin/g++ -> /etc/alternatives/g++ -> /usr/bin/g++-7

我也安装了clang-8和clang++-8,但是/usr/bin只包含clang-8和clang++-8,没有clang符号链接。我应该如何将 clang 添加到 update-alternatives 工具中?

【问题讨论】:

  • clang 符号链接是包clang 的一部分,指的是固定版本。与 gcc 包不同的维护者...

标签: linux ubuntu gcc clang


【解决方案1】:

Clang 不是 GCC 的一个版本,因此不能将其设置为 /usr/bin/gcc 的替代品。不要试图覆盖它;您将破坏一些需要 GCC 特定功能而 Clang 中不可用的程序。

可以将 Clang 设置为 /usr/bin/cc 的替代选项。这是设置 C 编译器的标准方法,它应该是相当安全的。 (即便如此,如果某些构建过程由于 Linux 系统上的 /usr/bin/cc 始终是 GCC 的假设而中断,我也不会感到惊讶。)

【讨论】:

  • 我不能使用这个命令:sudo update-alternatives --install /usr/bin/cc cc /usr/bin/clang-8 20 --slave /usr/bin/c++ c++ / usr/bin/clang++-8 因为我收到以下错误:update-alternatives: error: alternative c++ can't be slave of cc: it is a master alternative 我想同时切换 clang 和 clang++。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-01
相关资源
最近更新 更多