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