如何安装gcc-7或clang 4.0?


27

我想尝试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

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

sudo add-apt-repository ppa:ubuntu-toolchain-r/gcc-7

返回:

Error: 'ppa:ubuntu-toolchain-r/gcc-7' invalid

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

apt-get install clang-4.0 lldb-4.0

它给了我

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'

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


1
add-apt-repository您运行的命令与PPA页面上给出的命令不同,因此也就毫无疑问了。尝试运行正确的。
fkraiem '16

我先安装了test软件包。更新了问题。
nikitablack '16

add-apt-repository顾名思义,它会添加一个存储库,但不会安装软件包。现在您可以做apt install gcc-7
fkraiem

测试PPA中装有gcc-7软件包。您没有尝试安装吗?
dobey

2
@nikitablack看起来gcc 7在16.04中不可用:launchpad.net/~ubuntu-toolchain-r/+archive/ubuntu / ...但是您可能会更喜欢clang,请看此页面的基础:apt.llvm .org
andrew.46 2016年

Answers:


23

您已经可以从此软件包中安装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

9
是的,这可行。就今天而言,此ppa也有效add-apt-repository ppa:ubuntu-toolchain-r/test && apt-get update && apt-get install -y gcc-7
nikitablack

安装了clang-4.0.0,但clang -v显示3.8.0。
红色

两者都安装了4.0.0和3.8.0,但默认情况下系统读取3.8。在使用Emscripten读取它时需要搞怪,但是需要4.0.0。
红色

该回购协议是从住宅连接运行还是其他?
乔纳森·亨森

23

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

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)

GCC 8 on 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

给出截至2018-11年的8.1.0。

Ubuntu 18.04中的默认设置:

十字工具

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

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


1

OP要求“如何安装...”。或者,如何编译Clang 4.0。

您可以使用Microsoft ChakraCore的GitHub存储库中的脚本从源代码进行编译。

wget https://raw.githubusercontent.com/Microsoft/ChakraCore/master/tools/compile_clang.sh

LLVM_VERSION="3.9.1"在第7行更新到LLVM_VERSION="4.0.0"

sudo ./compile_clang.sh

它将下载并编译具有LLVM Gold支持的Clang 4.0(以及整个编译器工具链)。


3
什么是“ LLVM金牌”?
einpoklum-恢复莫妮卡

@einpoklum我想它是Binutils的Gold Linker 的LLVM gold插件。用于链接时间优化。
罗斯兰
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.