Як встановити 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

Я встановив testпакет спочатку. Оновлено питання.
— nikitablack

add-apt-repositoryяк випливає з назви, додає сховище, він не встановлює пакет. Тепер ви можете зробити apt install gcc-7.
— fkraiem

Тестовий PPA містить пакет gcc-7 в ньому. Ви не намагалися цього встановити?
— добі

2
@nikitablack Схоже, що gcc 7 недоступний для 16.04: launchpad.net/~ubuntu-toolchain-r/+archive/ubuntu/… Але у вас може бути кращий шанс з клангом, подивіться в базі цієї сторінки: apt.llvm .org
— andrew.46

Відповіді:


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
Так, це працює. Що стосується сьогодні, ця програма також працює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 і новіші версії

Існує офіційний тест PPA Ubuntu GCC, якому слід віддати перевагу:

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 був випущений у травні 2017 року , тому надто пізно для основного випуску 17.04.

Наразі PPA не має GCC для новіших випусків, наприклад, 16.10, лише LTS 12.04, 14.04 та 16.04, як це можна побачити на веб- сайті: https://launchpad.net/~ubuntu-toolchain-r/+archive/ubuntu/test | знімок . Я думаю, що раніше він був 17.04, але його видалили? Дивіться також: /unix/371737/install-gcc-7-on-ubuntu

Тестовано на Ubuntu 16.04 жовтня 2018 року.

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 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

дає 8.1.0 станом на 2018-11 роки.

За замовчуванням в Ubuntu 18.04:

Crosstool-NG

Якщо ви дійсно серйозно ставитесь до цього, складіть і використовуйте власний GCC з Crosstool-NG, як пояснено на веб-сторінці : /programming/847179/multiple-glibc-libraries-on-a-single-host/52454603# 52454603

Це дозволить вам використовувати найрізноманітніші версії GCC на найрізноманітніших версіях Ubuntu, не завантажуючи краплі з PPA, яким ви не обов’язково довіряєте.


1

ОП запитує "як встановити ...". Як варіант компілювати Clang 4.0.

Ви можете компілювати з вихідного коду, використовуючи скрипт із сховища GitHub Microsoft ChakraCore .

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

Він завантажить і компілює Clang 4.0 (і весь інструментальний компілятор) з підтримкою LLVM Gold.


3
Що таке "золото LLVM"?
— einpoklum - відновити Моніку

@einpoklum Я думаю, це золотий плагін LLVM для Gold Linker від Binutils. Він використовується для оптимізації часу зв'язку.
— Руслан
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.