Вопрос Как использовать последний GCC на Ubuntu?


Я хочу скомпилировать мою программу с последней версией gcc,

Ubuntu 14.04 поставляется с gcc 4.8.2, однако доступно 4.9.0, более того, я вижу, что он доступен как пакет: gcc-4.9, Я попытался установить его

sudo apt-get install gcc-4.9

но это говорит

Reading package lists... Done
Building dependency tree       
Reading state information... Done
Note, selecting 'gcc-4.9-base' for regex 'gcc-4.9'
gcc-4.9-base is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

Похоже, он уже установлен, а не как по умолчанию? Как его использовать для создания моей программы?


120
2018-05-16 01:11


происхождения


Если вы хотите установить gcc-4.8 , вам необходимо использовать sudo apt-get install gcc-4.8, gcc-4.9 ,gcc-4.8 , gcc-4.7, gcc-4.6 все в Главный репо Ubuntu,
@Dumindu Но как я могу использовать gcc-4.9 в частности? - Nickolai Leschov
Удалите другие и установите 4.9.
@Dumindu Подождите, вы просто сказали мне делать то, что я только что сделал? Это не работает. - Nickolai Leschov
переключиться на пользователя root: sudo su - идти к /usr/bin затем выполните ls -l gcc* и опубликуйте свой результат. то я отправлю ваш ответ. - αғsнιη


ответы:


Лучший способ правильно установить gcc-4.9 и установить его как версию gcc по умолчанию:

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

ПРИМЕЧАНИЕ. Вы можете пропустить установку репозитория PPA и просто использовать /usr/bin/gcc-4.9-base но я предпочитаю использовать свежие обновленные инструментальные цепочки.


Для GCC 5.X или 6 пакеты (и, соответственно, команды) просто вызываются gcc-5, gcc-6и т. д. Это связано с изменением Схема версий GCC, где 5.1 является первым выпуском GCC 5 и будущие выпуски 5.X предназначены для исправления ошибок,


176
2018-02-04 06:21



Спасибо за редактирование @muru ... как я сказал ниже, я был около 3 дней, очень устал и обновлялся - альтернативы действительно требуют sudo, и я думаю, что забыл (-) перед рабыней. :) Так что спасибо тебе. - SudoSURoot
Пытаться sudo apt-get -f install - SudoSURoot
Это прекрасно работает. Также замените 5 в 4.9 чтобы GCC 5 работал над Ubuntu. (Моя команда разработчиков теперь работает как 4,9, так и 5 вместе друг с другом, следуя вашему методу.) Спасибо, и +1! - CodeMouse92
@hwat Он должен работать gcc-6 Теперь. - edwinksl
Это помогло мне несколько раз, но я всегда забываю - обязательно примените одно и то же решение к другим утилитам в сборнике компиляторов GNU, которые вы можете использовать! Например, GCOV будет жаловаться на несоответствие версии, если вы этого не сделаете, возможно, создав неверные данные. - Toby


Использовать Инструментальный тест сборки 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-база) и компилятор GCC Go 4.9 (gccgo-4.9), но других интерфейсов нет. Я не знаю почему.


22
2017-07-13 00:04



@SudoSURoot может быть установлен или не установлен по умолчанию, это не моя проблема (есть и другие сообщения, касающиеся этого). Однако, что интерфейсы GCC 4.9 C и C ++ могут быть установлены на 14.04, только из официальных репозиториев явно ложны, поскольку gcc-4.9-base пакет не имеет и не будет содержать двоичный интерфейс. - muru
Вы правильно относитесь к базовому пакету. Как вы увидите в моем ответе, я использовал PPA. Сначала я отправил комментарий, а затем ответил на вопрос, как сказано, из вопроса ... Потому что просто добавление PPA и установка 4.9 не позволяют его использовать, чтобы «использовать gcc 4.9». Я должен был удалить комментарий после ответа на вопрос. Я извиняюсь. Мой ответ - это то, на что нужно сосредоточиться. Я перешел к выводам ... и прокомментировал это быстро. Я на самом деле довольно новичок в использовании 14.04, так как я получил выделенный сервер. Я гонг, чтобы убедиться, что у меня нет голоса, и я исправлю это, если я это сделаю. - SudoSURoot
@SudoSURoot в порядке. Тем не менее, если у ОП нет проблем с вызовом gcc-4.9 или g++-4.9 вместо gcc или g++, Я буду придерживаться не обновления альтернатив. - muru
Я полностью понимаю. Я строю Android-системы, хотя, которые используют много $ (которые gcc) и $ (которые g ++) и т. Д. Поэтому мне всегда нужно устанавливать значения по умолчанию для версии, которую я хочу использовать. Некоторые из моего кода ядра не будут компилироваться с хостом gcc-4.8, поэтому мне пришлось обновить. Я просто повторил то, что сработало для меня. Спасибо, что напомнил мне, хотя ... Как я уже сказал в своем редактировании, из последнего комментария, я, возможно, досрочно проголосовал, если так я это исправлю. Я был в течение 2 или 3 дней, работая над своим исходным кодом ядра, когда я разместил их. У каждого свои пути ... Я только нашел более тщательный ответ, тем меньше вопросов, - SudoSURoot
Последний пакет - gcc-7 ATM - Elder Geek


Чтобы конкретно вызвать gcc 4.9, используйте gcc-4.9 в командной строке.

Все версии gcc, которые вы установили, можно вызвать индивидуально, добавив дефис и номер версии в конце gcc, В твоем случае, gcc-4.8 а также gcc-4.9 должны быть доступны. В терминале введите тип gcc- (обратите внимание на дефис) и дважды нажмите кнопку, чтобы проверить, установлены ли какие-либо другие версии.

Обратите внимание, что gcc по умолчанию, скорее всего, 4.8. (Использование gcc -v чтобы проверить это.) К сожалению, изменение значения по умолчанию не является тривиальным, если вы установили gcc-4.9 из репозитория по умолчанию, поскольку он не добавил запись альтернативных обновлений. Если вас интересует, как изменить значение по умолчанию, см. Ответы на этот вопрос. этот вопрос,


2
2017-07-13 00:08



Как сделать проект, основанный на make-файле и, возможно, другой сборке инфраструктуры построения с помощью gcc-4.9 вместо gcc? - Nickolai Leschov
Лучший способ убедиться, что gcc-4.9 используется в системах сборки, - это изменение gcc по умолчанию. Следуйте за ссылкой, которую я предоставил в своем ответе за то, как это сделать. В качестве альтернативы вы можете создать символическую ссылку, хотя я рекомендую против нее, кроме как в крайнем случае, поскольку менеджер пакетов может жаловаться при обновлении gcc. Если вы настаиваете: sudo rm /usr/bin/gcc; sudo ln -s /usr/bin/gcc-4.9 /usr/bin/gcc, Чтобы вернуться к gcc-4.8 по умолчанию, просто замените gcc-4.9 на gcc-4.8. Возможно, вам придется делать это с помощью g ++ и других компиляторов GNU. - holocronweaver
GCC 4.9 недоступен в Ubuntu 14.04 (за исключением Компилятор GCC Go), поэтому, хотя этот ответ, вероятно, будет работать в Ubuntu 14.10, теперь это не помогает. :-) - Søren Løvborg
Фактически он доступен в Ubuntu 14.04, хотя, возможно, это была ошибка: packages.ubuntu.com/trusty/gcc-4.9-base, Я использую его с апреля. - holocronweaver


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-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 

0
2017-08-15 10:43