Я хочу попробовать C++ 17 функций, и я хочу установить стандартный совместимый компилятор (предпочтительно GCC). Я полностью плохо знаком с Linux и Ubuntu, и я просто не понимаю много.
Я пытался следовать за https://launchpad.net / ~ ubuntu-toolchain-r / + архив/человечность/тест, но без удачи. Сначала я работал:
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
Затем я пытался установить ответвление разработки лязга:
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'
Что делает все это означает? Что случилось?
Можно уже установить 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
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 был выпуском в май 2017 , настолько слишком поздно для 17,04 основных выпусков.
PPA в настоящее время не имеет GCC для более новых выпусков, например, 16.10, только LTS 12.04, 14.04 и 16.04, как видно в: https://launchpad.net / ~ ubuntu-toolchain-r / + архив/человечность/тест | снимок . Я думаю, что это имело 17.04 ранее, но это было удалено?См. также: https://unix.stackexchange.com/questions/371737/install-gcc-7-on-ubuntu
, Протестированный на Ubuntu 16.04, октябрь 2018.
Ubuntu 17.10 и выше
Имеет GCC 7.2 и лязг 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, как объяснено в: https://stackoverflow.com/questions/847179/multiple-glibc-libraries-on-a-single-host/52454603#52454603
Это позволит Вам использовать большое разнообразие версий GCC на большом разнообразии версий Ubuntu, не загружая блобы с PPAs, которому Вы не обязательно доверяете.
OP просит, "как установить...". С другой стороны, как скомпилировать Лязг 4.0.
можно скомпилировать от исходного кода с помощью сценария из репозитория Microsoft ChakraCore's 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
Это загрузит и скомпилирует Лязг 4.0 (и целый набор инструментальных средств компилятора) с Золотой поддержкой LLVM.
Вот мой шаг по установке gcc-7/g++-7 на Ubuntu 16.04 LTS И по умолчанию.
Сначала установите gcc-7/g++-7 с помощью официального ppa.
sudo apt update -qq
sudo apt install -yq software-properties-common
sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test
sudo apt update -qq
sudo apt install -yq g++-7
with:
-y
: автоматическое подтверждение-q
: тихий режим (несколько повышений уровня тишины)Затем сделайте его альтернативой по умолчанию
sudo update-alternatives \
--install /usr/bin/gcc gcc /usr/bin/gcc-7 60 \
--slave /usr/bin/g++ g++ /usr/bin/g++-7 \
--slave /usr/bin/gcov gcov /usr/bin/gcov-7 \
--slave /usr/bin/gcov-tool gcov-tool /usr/bin/gcov-tool-7 \
--slave /usr/bin/gcc-ar gcc-ar /usr/bin/gcc-ar-7 \
--slave /usr/bin/gcc-nm gcc-nm /usr/bin/gcc-nm-7 \
--slave /usr/bin/gcc-ranlib gcc-ranlib /usr/bin/gcc-ranlib-7
сейчас работает gcc --version
должен возвращать gcc 7.4.0 IIRC