如何安装 gcc-7 或 clang 4.0?

nik*_*ack 34 gcc c++ clang software-installation 16.04

我想尝试 C++17 特性,我想安装符合标准的编译器(最好是 GCC)。我对 Linux 和 Ubuntu 完全陌生,我只是不太了解。

我试图遵循https://launchpad.net/~ubuntu-toolchain-r/+archive/ubuntu/test但没有运气。首先我跑了:

sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
Run Code Online (Sandbox Code Playgroud)

据我了解,此命令会安装一些密钥。接下来我尝试:

sudo add-apt-repository ppa:ubuntu-toolchain-r/gcc-7
Run Code Online (Sandbox Code Playgroud)

那返回:

Error: 'ppa:ubuntu-toolchain-r/gcc-7' invalid
Run Code Online (Sandbox Code Playgroud)

接下来我尝试安装 clang 开发分支:

apt-get install clang-4.0 lldb-4.0
Run Code Online (Sandbox Code Playgroud)

它给了我

E: Unable to locate package clang-4.0
E: Couldn't find any package by glob 'clang-4.0'
E: Couldn't find any package by regex 'clang-4.0'
E: Unable to locate package lldb-4.0
E: Couldn't find any package by glob 'lldb-4.0'
E: Couldn't find any package by regex 'lldb-4.0'
Run Code Online (Sandbox Code Playgroud)

这一切意味着什么?怎么了?

Cir*_*郝海东 29

适用于所有 Ubuntu 版本的超级 GCC 表:如何在 Ubuntu 上使用最新的 GCC?

Ubuntu 16.04 及以下

有一个官方的 Ubuntu GCC 测试 PPA,应该是首选:

sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install gcc-7 g++-7
gcc-7 --version
Run Code Online (Sandbox Code Playgroud)

GCC 7 于20175 月发布,对于 17.04 主版本来说太晚了。

PPA 目前没有用于更新版本的 GCC,例如 16.10,只有 LTS 12.04、14.04 和 16.04,可以在以下位置看到:https : //launchpad.net/~ubuntu-toolchain-r/+archive/ubuntu/test | 快照。我认为它以前有 17.04 但它被删除了?另见:https : //unix.stackexchange.com/questions/371737/install-gcc-7-on-ubuntu

在 Ubuntu 16.04 上测试,2018 年 10 月。

Ubuntu 17.10 及以上

默认有 GCC 7.2 和 clang 4!https://packages.ubuntu.com/artful/gcc | https://packages.ubuntu.com/artful/clang

$ gcc --version
gcc (Ubuntu 7.2.0-8ubuntu3) 7.2.0
$ clang --version  
clang version 4.0.1-6 (tags/RELEASE_401/final)
Run Code Online (Sandbox Code Playgroud)

海湾合作委员会 8 于 16.04

sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install gcc-8 g++-8
gcc-8 --version
Run Code Online (Sandbox Code Playgroud)

截至 2018-11 年为 8.1.0。

Ubuntu 18.04 中的默认设置:

Crosstool-NG

如果您真的对此很认真,请使用 Crosstool-NG 编译并使用您自己的 GCC,如下所述:https ://stackoverflow.com/questions/847179/multiple-glibc-libraries-on-a-single-host/52454603# 52454603

这将允许您在各种 Ubuntu 版本上使用各种 GCC 版本,而无需从您不一定信任的 PPA 下载 blob。

  • 赞成!我很感激这种帮助。在这些步骤之后,我还需要运行 `update-alternatives`,如下所述:https://askubuntu.com/a/980495/231504 (2认同)

Jen*_*das 25

您已经可以从此安装 gcc-7 和 g++-7 。

sudo add-apt-repository ppa:jonathonf/gcc-7.1
sudo apt-get update
sudo apt-get install gcc-7 g++-7
Run Code Online (Sandbox Code Playgroud)

  • 是的,这有效。至于今天,这个 ppa 也适用 `add-apt-repository ppa:ubuntu-toolchain-r/test && apt-get update && apt-get install -y gcc-7` (9认同)