Как установить 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/… Но у вас может быть больше шансов с clang, посмотрите основание этой страницы: apt.llvm .org
Андрей.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
Да, это работает. На сегодняшний день этот 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 и ниже

Существует официальный тестовый 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.

Вы можете компилировать из исходного кода, используя скрипт из репозитория 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

Он загрузит и скомпилирует Clang 4.0 (и весь набор инструментов компилятора) с поддержкой LLVM Gold.


3
Что такое "LLVM gold"?
einpoklum - восстановить Монику

@einpoklum Полагаю, это золотой плагин LLVM для Gold Linker от Binutils. Он используется для оптимизации времени соединения.
Руслан
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.