- Вопрос или проблема
- Ubuntu 16.04 и более поздние версии
- Ответ или решение
- Как использовать последнюю версию GCC на Ubuntu?
- 1. Установка PPA
- 2. Установка GCC
- 3. Использование update-alternatives
- 4. Добавление старой версии GCC (при необходимости)
- 5. Переключение между версиями GCC
- 6. Проверка установленной версии
- Заключение
Вопрос или проблема
Я хочу скомпилировать свою программу с последней версией gcc
.
Ubuntu 14.04 поставляется с gcc 4.8.2, однако доступна версия 4.9.0, и я вижу, что она доступна в виде пакета: gcc-4.9
. Я попытался установить его
sudo apt-get install gcc-4.9
но было сказано
Чтение списков пакетов... Готово
Формирование дерева зависимостей
Чтение информации о состоянии... Готово
Обратите внимание, выбор 'gcc-4.9-base' для регулярного выражения 'gcc-4.9'
gcc-4.9-base уже является новейшей версией.
0 обновлено, 0 только что установлено, 0 к удалению и 0 не обновлено.
Похоже, он уже установлен, просто не является версия по умолчанию? Как мне его использовать для сборки моей программы?
Лучший способ правильно установить gcc-4.9 и установить его в качестве вашей версии по умолчанию:
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install gcc-4.9 g++-4.9
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.9 60 --slave /usr/bin/g++ g++ /usr/bin/g++-4.9
Параметр --slave
с g++
приведет к тому, что g++
будет переключаться вместе с gcc
на ту же версию. Но на этом этапе gcc-4.9 будет вашей единственной версией, настроенной в update-alternatives
, поэтому добавьте 4.8 в update-alternatives
, чтобы была действительно альтернатива, используя:
sudo apt-get install gcc-4.8 g++-4.8
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 60 --slave /usr/bin/g++ g++ /usr/bin/g++-4.8
Затем вы можете проверить, какая из них установлена, и менять между ними, используя:
sudo update-alternatives --config gcc
Если у вас возникла проблема с приоритетом update-alternatives gcc 60, который не выше, чем у предыдущих установленных версий, вы можете использовать предыдущую команду update-alternatives –config gcc, чтобы проверить установленные версии и использовать:
sudo update-alternatives --remove gcc
Или:
sudo update-alternatives --remove-all gcc
ПРИМЕЧАНИЕ: Вы можете пропустить установку PPA репозитория и просто использовать /usr/bin/gcc-4.9-base
, но я предпочитаю использовать свежие обновленные инструментарии.
Для GCC 5.X или 6 пакеты (и соответствующие команды) просто называются gcc-5
, gcc-6
и т. д. Это связано с изменением схемы версий GCC, где 5.1 — это первый релиз GCC 5, а будущие релизы 5.X предназначены для исправлений ошибок.
Универсальная таблица совместимости
Хорошо, давайте сделаем это:
GCC clang
+----------------------------------+----------------------------------------------+
| 14 13 12 11 10 9 8 7 6 5 4 | 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 |
+-------+----------------------------------+----------------------------------------------+
| 24.10 | D M M M | D M M M M M |
| 24.04 | M D M M M M | D M M M M |
| 23.10 | D M M M M | M D M M M |
| 23.10 | D M M M M | D M M M |
| 23.04 | M D M M M | M D M M |
| 22.10 | D M M M | D M M |
| 22.04 | M D M M | D M M M |
| 21.10 | D M M M | D M M M M |
| 21.04 | M D M M M | D M M M |
| 20.10 | D M M M | D M M M M M |
| 20.04 | P D M M | D M M M M |
| 19.10 | D M M | |
| 19.04 | M D M M | |
| 18.10 | D M M M | |
| 18.04 | P P M D M M | M M M D M |
| 16.04 | P P P P D M | |
+-------+----------------------------------+----------------------------------------------+
-
D: По умолчанию GCC
sudo apt-get update sudo apt-get install gcc g++ gcc --version
Несмотря на то, к какому пакету
gcc
относится: https://packages.ubuntu.com/search?keywords=gcc и также присутствует в манифестах: Как мне перечислить установленные по умолчанию пакеты? -
M: Присутствует в основном репозитории
sudo apt-get update sudo apt-get install gcc-X g++-X gcc-X --version
Все версии Ubuntu, которые имеют соответствие для данной версии GCC, например для GCC 7: https://packages.ubuntu.com/search?keywords=gcc-7 или clang 7 https://packages.ubuntu.com/search?keywords=clang-7
Минорные версии этих пакетов могут обновляться время от времени, например, с 8.3.0 до 8.4.0.
-
P:
ppa:ubuntu-toolchain-r/test
, который принадлежит людям из Ubuntu и, следовательно, может быть доверен, что это не вирус, хотя он может быть потенциально нестабильным:sudo add-apt-repository ppa:ubuntu-toolchain-r/test sudo apt-get update sudo apt-get install gcc-X g++-X gcc-X --version
Полный список: https://launchpad.net/~ubuntu-toolchain-r/+archive/ubuntu/test
Минорные версии этих пакетов могут обновляться время от времени, например, с 8.3.0 до 8.4.0.
Пробелы в таблице означают либо “пакет не доступен”, либо “я не стал проверять”. Замечу, что я не слишком тщательно изучал пакеты PPA. Правки принимаются.
Все вопросы:
- установить gcc-9 на Ubuntu 18.04?
- Как установить gcc-7 или clang 4.0?
- установить gcc-9 на Ubuntu 18.04?
- Какие версии GCC и clang доступны в Ubuntu 18.04?
Как установить не по умолчанию GCC как стандартный?
/usr/bin/gcc-7, но хотите использовать его вместо /usr/bin/gcc
, когда запускаете gcc main.c
.
Используйте sudo update-alternatives
, как упоминалось в других ответах: https://askubuntu.com/a/581497/52975 Это создаст необходимые символьные ссылки для вас.
Смотрите также: Что именно делает `update-alternatives`?
Как собрать свой собственный инструментарий из источников
Если даже PPA не достаточно старый/новый для вас, смотрите здесь:
- https://stackoverflow.com/questions/847179/multiple-glibc-libraries-on-a-single-host/52454603#52454603
- https://stackoverflow.com/questions/26305738/can-i-build-gcc-for-arm-with-an-x64-one/26306591#26306591
Вопросы старых версий GCC
Используйте PPA для тестовых сборок инструментария:
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install gcc-4.9
Я не думаю, что GCC 4.9 полностью доступен для Ubuntu 14.04. Базовый пакет (gcc-4.9-base) и компилятор GCC Go 4.9 (gccgo-4.9) доступны, но другие интерфейсы недоступны. Я не знаю, почему.
Ubuntu 16.04 и более поздние версии
Вы уже можете установить gcc 7.0 в Ubuntu 18.04 из основных репозиториев. Чтобы установить gcc-7 в Ubuntu 17.10, 18.04 и 18.10, откройте терминал и введите:
sudo apt install gcc-7
Чтобы установить gcc-8 в Ubuntu 18.04 и более поздние версии, откройте терминал и введите:
sudo apt install gcc-8
Чтобы установить gcc-9 в Ubuntu 19.04 и более поздние версии, откройте терминал и введите:
sudo apt install gcc-9
Вы можете установить gcc-7 в Ubuntu 16.04 из ppa:jonathonf/gcc-7.1.
sudo add-apt-repository ppa:jonathonf/gcc-7.1
sudo apt update
sudo apt install gcc-7
Вы можете установить gcc-8 в Ubuntu 16.04 из ppa:jonathonf/gcc-8.0.
sudo add-apt-repository ppa:jonathonf/gcc-8.0
sudo apt update
sudo apt install gcc-8
Несколько версий gcc могут быть установлены одновременно. Вы можете изменить версию по умолчанию, используя команду update-alternatives
, чтобы определить, какой фактический файл ссылается на общее имя, например, какой фактический файл ссылается на gcc
. Для получения дополнительной информации смотрите ответы на этот вопрос: Как изменить компилятор GCC по умолчанию в Ubuntu?.
Чтобы вызвать gcc 4.9 конкретно, используйте gcc-4.9
в командной строке.
Все версии gcc, которые вы установили, можно вызвать по отдельности, добавив дефис и номер версии в конце gcc
. В вашем случае gcc-4.8
и gcc-4.9
должны быть доступны. В терминале введите gcc-
(обратите внимание на дефис) и дважды нажмите клавишу tab, чтобы увидеть, есть ли другие установленные версии.
Обратите внимание, что gcc по умолчанию, вероятно, все еще 4.8. (Используйте gcc -v
, чтобы это проверить.) К сожалению, изменить значение по умолчанию не просто, если вы установили gcc-4.9 из репозитория по умолчанию, так как он не добавил запись update-alternatives. Если вас интересует, как изменить значение по умолчанию, смотрите ответы на этот вопрос.
Ответ или решение
Как использовать последнюю версию GCC на Ubuntu?
Для компиляции вашей программы с использованием последней версии GCC (GNU Compiler Collection) на системе Ubuntu, особенно если вы используете более старую версию, такую как Ubuntu 14.04, вам потребуется сделать несколько шагов. Данная версия Ubuntu имеет предустановленную версию GCC 4.8.2, но вы можете обновить ее до GCC 4.9.0 и более поздних версий. В этом руководстве мы рассмотрим, как корректно установить и настроить последние версии GCC.
1. Установка PPA
Первым делом вам следует добавить PPA (Personal Package Archive) репозиторий, который содержит свежие версии инструментария GCC. Выполните следующую команду в терминале:
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
Это добавляет репозиторий и обновляет список пакетов для получения доступа к новым версиям GCC.
2. Установка GCC
После добавления PPA, вы можете установить GCC 4.9 и G++ 4.9 с помощью следующих команд:
sudo apt-get install gcc-4.9 g++-4.9
3. Использование update-alternatives
Для того чтобы использовать новую версию GCC по умолчанию, вам следует настроить систему через update-alternatives
. Эта утилита позволяет управлять установкой нескольких версий одного и того же программного обеспечения. Выполните следующие команды:
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.9 60 --slave /usr/bin/g++ g++ /usr/bin/g++-4.9
Эта команда установит GCC 4.9 и G++ 4.9 как альтернативу, связанную с командой gcc
и g++
. При этом приоритет установлен на 60.
4. Добавление старой версии GCC (при необходимости)
Если у вас установлена ранее версия GCC (например, 4.8), вы также можете добавить ее в альтернативы, чтобы иметь возможность переключаться между версиями:
sudo apt-get install gcc-4.8 g++-4.8
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 50 --slave /usr/bin/g++ g++ /usr/bin/g++-4.8
5. Переключение между версиями GCC
Чтобы проверить, какая версия GCC установлена по умолчанию, и при необходимости переключиться на другую, используйте команду:
sudo update-alternatives --config gcc
Вы увидите список установленных версий GCC и сможете выбрать нужную.
6. Проверка установленной версии
Чтобы убедиться, какая версия GCC используется по умолчанию после всех манипуляций, выполните:
gcc -v
Это покажет текущую версию компилятора.
Заключение
Следуя приведенным шагам, вы сможете установить и использовать последнюю версию GCC на вашей системе Ubuntu. Обратите внимание на то, что вы также можете устанавливать более новые версии GCC (например, 5.x, 6.x и далее) аналогичным способом, используя соответствующие команды установки. Установка PPA и использование update-alternatives
— это простые и эффективные методы для управления разными версиями компиляторов на вашей системе.