Как установить gcc-4.8

94

Я проверил версию gcc в моей системе.

Это в настоящее время в 4.6.3. Я читал, что gcc-4.8 отсутствует.

Я попробовал следующие команды без успеха:

sudo apt-get install gcc (gcc is already the newest version)
sudo apt-get install gcc-4.8 (unable to locate package)

Кто-нибудь знает как установить этот пакет на 12.04?

MDT
источник
Ответ @ maggotbrain работал для меня, хотя мне пришлось добавить: sudo apt-get install gcc-multilib, когда я столкнулся с этой проблемой: superuser.com/questions/432202/make-fails-compiling-gcc
skillman
2
Примечание для будущих Google: если вы получите сообщение об ошибке, например, неопределенную ссылку на lexer_line, то это из-за отсутствия инструментов: bison и flex sudo apt-get install bison sudo apt-get install flex, как указано здесь: http: // stackoverflow. ru / questions / 4262531 / challenge-building-gcc-4-6
virtualPN

Ответы:

119

GCC-4.8 доступен для 12.04 Precise сейчас?

Обновление : по состоянию на 05.06.2013 г. в настоящее время доступен выпуск gcc 4.8.1 для 12.04 (точный), доступный по адресу https://launchpad.net/~ubuntu-toolchain-r/+archive/test .

Краткий ответ: gcc-4.8в настоящее время доступно для 12.04 (Precise) через инструментальную цепочку PPA или путем компиляции источника (подробности см. Ниже).

Объявление о выпуске

Заявление об освобождении GCC-4.8 было сделано 22 марта, так что вы , вероятно , не будете видеть это в официальном репозитории только пока.

Однако, похоже, что на Launchpad действительно есть PPA для тестовых сборок набора инструментов , который включает gcc-4.8, здесь: https://launchpad.net/~ubuntu-toolchain-r/+archive/test

Согласно списку изменений и списку пакетов , есть дэбы для i386, amd64, arm и powerpc, которые были созданы против raring 13.04.

Последняя доступная версия gcc для 12.04 - 4.8.1 и доступна в наборе инструментов PPA.

Добавление цепочки инструментов / теста PPA:

Чтобы добавить PPA в вашу систему, откройте терминал ( Ctrl+ Alt+ t) и выполните следующие команды:

sudo apt-get install python-software-properties
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install gcc-4.8
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 50

Вам также будет предложено установить несколько предложенных пакетов. Эти пакеты рекомендуются, но не являются обязательными, для установки gcc-4.8.

Какие функции C ++ доступны в gcc-4.8 и недоступны в gcc-4.7.2?

  • Согласно GNU.ORG , gcc-4.7 поддерживает ряд функций C ++ 11 .
  • Начиная с выпуска gcc-4.8, gcc-4.7 не поддерживает 8 из 64 функций (см. Поддержка C ++ 0x / C ++ 11 в GCC ).

  • Эти функции:

    Language Features
    - Rvalue references for *this
    - Generalized attributes
    - Alignment support
    - Inheriting constructors
    Concurreny
    - Bidirectional Fences
    - Memory model
    - Abandoning a process and at_quick_exit
    - Thread-local storage 
    
  • Полный список изменений в НКУ-4,8 см список изменений

Мне нужны эти функции gcc на 12.04 Precise, сейчас. Как я могу получить их?

Здание GCC-4.8 из источника:

Если вам нужен gcc-4.8 от 12.04 сейчас, ваш единственный вариант - собрать его из исходного кода .

Пожалуйста, прочтите FAQ по установке GCC перед установкой.

Вы можете скачать gcc-4.8 с одного из зеркальных сайтов gnu.org или напрямую с их сервера SVN .

Вот пример шагов для компиляции из исходных кодов (см здесь для получения дополнительной информации.) Обратите внимание , что они могут варьироваться в зависимости от вашей системы и предпочтений.

  1. Скачать исходный код

    • Создайте каталог сборки ( mkdir gcc-build && cd gcc-build)
    • Загрузите исходный файл: wget http://www.netgull.com/gcc/releases/gcc-4.8.0/gcc-4.8.0.tar.bz2(настройте эту команду для использования соответствующего зеркального сайта .
    • Распакуйте файл ( tar -xvjf <file name>)
  2. Установите несколько дополнительных библиотек ( sudo apt-get install libgmp-dev libmpfr-dev libmpc-dev libc6-dev)

  3. Скомпилируйте источник: ./gcc-4.8.0/configure --prefix=/app/gcc/4.8.0
  4. Запустить make(Это займет некоторое время. Пойди приготовь кофе или испечь печенье. ;-))
  5. Установите код: sudo make install

После завершения этого процесса выполните команду, gcc --versionчтобы убедиться, что установка прошла успешно. Вы должны увидеть нечто похожее на следующий результат:

maggotbrain@foucault:~$ gcc --version
gcc (Linaro 4.8.0) 4.8.0
Copyright (C) 2013 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Итог: Спасибо всем тем, кто предоставляет легкую установку бэкпортов Ubuntu для вас. Дайте им печенье, которое вы испекли во время работы make. ;-)

Kevin Bowen
источник
Отличный ответ, кроме:E: Unable to locate package gcc-4.8
Джон Диблинг
2
Установка дополнительных библиотек была для меня недостаточной, но запуск ./contrib/download_prerequisites.shисправил (из stackoverflow.com/questions/9253695/… ).
Готье
7
Примечание: мне также пришлось установить пакет g ++ - 4.8 (в дополнение к gcc-4.8), чтобы иметь возможность компилировать код C ++. В противном случае я получаю ошибку компиляции: gcc: error trying to exec 'cc1plus': execvp: No such file or directory 4.8.
Борис Дальштейн
Мне удалось успешно установить gcc4.8 на Precise
Homunculus Reticulli
1
@ Джон Диблинг - Конечно, открытый метод устанавливает файлы, но, таким образом, вы никогда не создаете и не устанавливаете какой-либо пакет ... следовательно, вы не можете найти его (их) :-). Ну, есть быстрый способ автоматически собрать пакеты, используя папку debian по ссылке . Я сделал это успешно для других пакетов. Это решение будет устанавливать все связанные пакеты, включая g ++ и т. Д.
Антонио
1

Так что ответ выше работает, по крайней мере, для ручной установки. Хотя даже после sudo make installзапуска gccвсе равно запускается стоковая версия 4.6.3. Даже пытается gcc-4.8или gcc-4.8.0не работает. Бег, /app/gcc/4.8.0/bin/gccкажется, единственное, что работает для меня. Я имею в виду, что это отчасти хромает, но, по крайней мере, это работает.

user149393
источник
5
[: facepalm:] Прежде чем называть вещи "хромыми", возможно, вам следует обновить знания об операционных системах. Вы могли бы начать с изучения концепции PATH: en.wikipedia.org/wiki/PATH_(variable)
pszilard
1
Конечно же, поскольку вы не устанавливаете какой-либо пакет со скриптом DEBIAN / postinst, вы должны вручную установить версию по умолчанию для использования вашей системой через команду update-alternatives cmd. строка ... Если вы использовали --prefix = / usr, нет необходимости вмешиваться в PATH ...
Антонио