Я хочу использовать некоторые функции 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]
Это говорит, что это уже самая новая версия. Я не понимаю почему ...
Ответы:
Единственный доступный вариант - это построить его из исходников , так как вы используете версию Vivid (15.04), которая достигла EOL (End Of Life).
Загрузите исходный код и его предварительные условия:
Скомпилируйте источники (примечание: эта команда будет отличаться в зависимости от того, где вы изначально сохранили архив .bz2), вы также можете изменить параметр для
build
команды. В этом случае мы будем использовать очень простой вариант:ПРИМЕЧАНИЕ : убедитесь, что вы прочитали документы для просмотра доступных вариантов.
Теперь мы готовы построить GCC
Запустите
make
команду для сборки gcc, выполнение этих шагов займет много времени.Как только вышеупомянутая фаза будет завершена, вы можете установить встроенный GCC с:
После завершения этого процесса выполните команду,
gcc --version
чтобы убедиться, что установка прошла успешно.источник
-v
стоять за-verbose
. Более подробную информацию смотрите на то , что на самом деле многословным~/gcc-6.3.0
, в~/gcc-build
или в другую папку? Не следует ли удалять какие-либо из созданных папок после выполнения этих команд или они все еще необходимы?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
, поэтому я распаковал архив с менеджером архива.../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
и другие подобные ошибки.Ubuntu 15.04 завершил свою работу и не имеет поддержки, что означает, что больше не будут публиковаться обновления или исправления (безопасность, ошибки или функции) .
Вы должны обновить или переустановить с более новой версией Ubuntu.
Я рекомендую перейти с 16.10 (поддержка 9 месяцев), в которой уже есть ветка gcc 6.x на официальных репозиториях.
Но вы также можете использовать 16.04 LTS (5-летняя поддержка) и добавить ненадежный / негарантированный ppa для получения последних версий gcc, подобных этой.
Лично я бы предпочел перейти с 16.10 и продолжать обновление с официальных каналов до более поздних версий программного обеспечения / Ubuntu без добавления (в основном) какого-либо ppa.
источник