Как установить g ++ 4.7.2 и c ++ 11 на CentOS 5.x?

8

Я пытаюсь установить последнюю стабильную g++и c++11. Мой хозяин сделал это до конца yum installи подумал, что это было последним, но это не так, и теперь они говорят, что это за пределами их уровня поддержки.

Я посмотрел на все, как это сделать, и я не могу заставить что-либо работать, или я понятия не имею, что говорит предлагаемое решение.

Какой самый простой способ установить g++4.7.2 и c++11CentOS 5.9 ?

jasonwryan
источник
2
Я не вижу в этом ничего, что (в моих очень неопытных глазах) требует какой-то новой функции C ++. К установке дополнительного программного обеспечения (не менее того, от источника) не следует относиться легкомысленно (если вы используете CentOS, это, предположительно, корпоративное приложение). В любом случае, не для тех, у кого есть опыт работы с Linux. Пересмотрите ваши варианты тщательно.
vonbrand
1
что так настойчиво требует лямбда? Возможно, вам лучше всего установить последнюю версию Fedora, где gcc-4.7.2 является компилятором по умолчанию, поддерживаемым дистрибутивом ?
vonbrand
2
Я не эксперт по C ++, но «сортировка по N-му int в векторе int» требует сравнения векторов, и это не является экзотическим требованием только для того, чтобы быть полностью заполненным последним C ++. Конечно, это может быть проще, но если что-то такое простое не может быть сделано из самых первых версий STL, я был бы ошеломлен. Получить эксперта по C ++ на борту?
vonbrand
Вы рассматривали библиотеки BOOST? Оттуда пришел большой процент C ++ 11 ...
Аарон Д. Мараско
C ++ 11 не компилятор, это стандарт. смотри мой ответ.
PersianGulf

Ответы:

9

Из этого ответа на «Установка gcc 4.7 в CentOS [6.x]» самый простой способ получить g++4.7 и необходимые инструменты и библиотеки для CentOS 5.x - через devtoolsпакет:

cd /etc/yum.repos.d
wget http://people.centos.org/tru/devtools/devtools.repo 
yum --enablerepo=testing-devtools-6 install devtoolset-1.0

Поскольку вы работаете g++вручную (в противоположность через make), вам необходимо обновить $PATHпеременную таким образом ваша оболочка будет использовать новый gcc, g++и т.д. двоичные файлы:

export PATH=/opt/centos/devtoolset-1.0/root/usr/bin/:$PATH

На данный момент у вас g++должна быть версия 4.7.0

$ g++ --version
g++ (GCC) 4.7.0 20120507 (Red Hat 4.7.0-5)
Copyright (C) 2012 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.

Имейте в виду, что установка gccи связанные с ними инструменты и библиотеки таким образом зависят от сопровождающего хранилища, чтобы поддерживать свои пакеты в актуальном состоянии.

Если вы заинтересованы в обновлении gcc, вы можете подумать о строительстве gccиз источника .

Кроме того , составление программы с другой версией g++и libstdc++чем установлена на вашей системе может вызвать все виды веселья , справиться с которой выходит за рамки этого ответа. Возможно, стоит перейти к дистрибутиву Linux, в котором есть поддержка того, что вы делаете.

Reed Kraft-Murphy
источник
Я обновил инструкции - пакет, который вы хотите yumустановить devtoolset-1.0, так как он содержит другие необходимые инструменты разработки; и вы захотите обновить свою $PATHпеременную, так как вы запускаете g++из командной строки.
Рид Крафт-Мерфи
Когда я создаю новую консоль, gcc все еще на старой версии. Как мне сделать новую версию по умолчанию?
BT
1
Чтобы установить это навсегда, вы должны добавить export PATH..строку в ~ / .profile или ~. / Profile_bash или эквивалент: superuser.com/questions/809250/…
BT
После этого по-прежнему отображается «g ++ (GCC) 4.1.2» :-(
IllidanS4 хочет вернуть Монику
1

Менеджеры пакетов великолепны, но (по понятным причинам) обычно не включают в себя последнюю версию программного обеспечения. CentOS, являющийся дистрибутивом, особенно ориентированным на серверы, предпочитает стабильность (и всестороннее тестирование), а не последнюю версию и лучшую. Вот ваши решения:

Изменить дистрибутив

Другие дистрибутивы, такие как Arch Linux, Sabayon Linux или Debian "Sid", включают новые версии намного быстрее. Вы можете рассмотреть вопрос об изменении дистрибутивов.

Построй сам

Если вы застряли в CentOS, вам лучше всего создать gcc из исходного кода . Это значит получить исходный код, убедиться, что зависимости уже присутствуют в вашей системе (если нет, я уверен, что вы можете получить их из диспетчера пакетов CentOS), скомпилировать исходный код в двоичный исполняемый файл и установить исполняемый файл на свой компьютер. система .

Это не самый простой способ сделать это наверняка, но вы узнаете много нового о Unix в процессе. Обязательно прочитайте документ несколько раз, чтобы убедиться, что вы все поняли, и задавайте вопросы, если что-то конкретное неясно.

Потерпи

В какой-то момент эта версия (или более новая) gcc / g ++ собирается войти в менеджер пакетов. Если вы подождете (до нескольких месяцев, я не очень знаком с циклом выпуска CentOS), вы в конечном итоге получите то, что вы хотите.

rahmu
источник
1

Хм, я слишком новичок, чтобы комментировать ответ Рида. Это хорошо сработало для меня. Единственное, что я хотел отметить (может быть, это что-то для Рида?), Это то, что мне пришлось установить с немного другой командной строкой:

yum --enablerepo=testing-devtools-5 install devtoolset-1.0

(Рид ответил --enablerepo=testing-devtools-6, что не сработало.)

Шон Сучтер
источник