Обновление GCC до версии 6.3 [закрыто]


10

Я хочу использовать некоторые функции C ++, доступные только в более поздних версиях языка. Проблема в том, что в Ubuntu 15.04 (Vivid Vervet) установлена ​​версия 4.9.2, и, глядя на вывод, полученный из apt-get install gcc :

Reading package lists... Done
Building dependency tree       
Reading state information... Done
gcc is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 3 not upgraded.
2 not fully installed or removed.
After this operation, 0 B of additional disk space will be used.
Do you want to continue? [Y/n]

Это говорит, что это уже самая новая версия. Я не понимаю почему ...


1
Ubuntu 15.04 больше не поддерживается, возможно, вам следует перейти на более новую версию. Старые версии Ubuntu обычно не имеют последних версий пакетов, вам необходимо обновить дистрибутив или установить пакет из ppa или собрать его из исходного кода.
Разиман ТВ

Ответы:


10

Единственный доступный вариант - это построить его из исходников , так как вы используете версию Vivid (15.04), которая достигла EOL (End Of Life).

  1. Загрузите исходный код и его предварительные условия:

    wget https://ftp.gnu.org/gnu/gcc/gcc-6.3.0/gcc-6.3.0.tar.bz2
    tar jxvf gcc-6.3.0.tar.bz2
    cd gcc-6.3.0
    ./contrib/download_prerequisites
    
  2. Скомпилируйте источники (примечание: эта команда будет отличаться в зависимости от того, где вы изначально сохранили архив .bz2), вы также можете изменить параметр для buildкоманды. В этом случае мы будем использовать очень простой вариант:

    cd ~
    mkdir gcc-build && cd gcc-build
    ../gcc-6.3.0/configure -v --prefix=$HOME/gcc-6.3.0
    

    ПРИМЕЧАНИЕ : убедитесь, что вы прочитали документы для просмотра доступных вариантов.

  3. Теперь мы готовы построить GCC

    • Запустите makeкоманду для сборки gcc, выполнение этих шагов займет много времени.

      make
      
    • Как только вышеупомянутая фаза будет завершена, вы можете установить встроенный GCC с:

      sudo make install
      

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


Что делает опция "-v"? Кажется, я не могу найти его на gcc.gnu.org/install/configure.html
Фабрицио Сантана,


В какую папку установлен g ++ 6.3 при выполнении этих шагов? В ~/gcc-6.3.0, в ~/gcc-buildили в другую папку? Не следует ли удалять какие-либо из созданных папок после выполнения этих команд или они все еще необходимы?
Hellogoodbye

1
tar xzvf gcc-6.3.0.tar.bz2просто печатает gzip: stdin: not in gzip format; tar: Child returned status 1; tar: Error is not recoverable: exiting now, поэтому я распаковал архив с менеджером архива.
Hellogoodbye

Когда я бегу ../gcc-6.3.0/configure -v --prefix=$HOME/gcc-6.3.0, я получаю /usr/bin/ld: cannot find crt1.o: No such file or directory, /usr/bin/ld: cannot find crti.o: No such file or directory, /usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.8/libgcc.a when searching for -lgcc, /usr/bin/ld: cannot find -lgccи другие подобные ошибки.
Hellogoodbye

4

Ubuntu 15.04 завершил свою работу и не имеет поддержки, что означает, что больше не будут публиковаться обновления или исправления (безопасность, ошибки или функции) .

Вы должны обновить или переустановить с более новой версией Ubuntu.

Я рекомендую перейти с 16.10 (поддержка 9 месяцев), в которой уже есть ветка gcc 6.x на официальных репозиториях.

Но вы также можете использовать 16.04 LTS (5-летняя поддержка) и добавить ненадежный / негарантированный ppa для получения последних версий gcc, подобных этой.

Лично я бы предпочел перейти с 16.10 и продолжать обновление с официальных каналов до более поздних версий программного обеспечения / Ubuntu без добавления (в основном) какого-либо ppa.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.