Подтвердить что ты не робот

Установка gcc 4.8 на Debian

Я хочу начать играть с некоторыми из новых возможностей С++ 11, и кажется, что лучшая поддержка для этого - с gcc 4.8, а Squeeze - с 4.4.5.

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

Кто-нибудь смог это сделать и какие шаги были предприняты?

В противном случае я, скорее всего, просто создаю виртуальную машину и запустил бы "нестабильный" Debian, но это было бы менее идеальным решением.

4b9b3361

Ответ 1

Если вы устанавливаете GCC из исходного кода, убедитесь, что вы не устанавливаете его на /usr, и он ничего не испортит. Если вы установите его как своего собственного пользователя, а не root, тогда нет никакой возможности испортить систему.

См. http://gcc.gnu.org/wiki/InstallingGCC для минимальной конфигурации с минимальным идиотом.

У меня есть разные версии, созданные моим пользователем и установленные в ~/gcc/4.X для разных X.

Единственное, что нужно знать об использовании этой настройки, - это то, что разделяемые библиотеки для новой версии не находятся в пути поиска по умолчанию для динамического компоновщика, поэтому вам нужно использовать LD_LIBRARY_PATH или какое-то другое решение для обеспечения поиска исполняемых файлов libs от 4.8, см. часто задаваемые вопросы о libstdС++ и страницу, на которую он ссылается в manual

Я использую оболочку script call g++11, которая просто вызывает новую версию GCC с помощью -std=gnu++11 и передает флаг компоновщику, говоря ему, чтобы установить путь к 4.8 libs в исполняемом файле:

$HOME/gcc/4.8/bin/g++ -Wl,-rpath,$HOME/gcc/4.8/lib64 -std=gnu++11 -Wall -Wextra -g "[email protected]"

Ответ 2

У меня была такая же проблема, и я не хотел полностью обновляться до тестирования.

Jessie (тестирование) теперь содержит g++ - 4.8, которая совместима с С++ 11.

Я использовал apt-pinning следующим образом:

Источник для jessie был добавлен в /etc/apt/sources.list:

deb http://ftp.uk.debian.org/debian/ jessie main non-free contrib

/etc/apt/preferences был отредактирован как таковой:

Package: *
Pin: release n=wheezy
Pin-Priority: 900

Package: gcc*
Pin: release n=jessie
Pin-Priority: 910

Затем

$ sudo aptitude update
$ sudo aptitude install gcc/jessie

В какой момент я выбрал второй представленный параметр для полного разрешения зависимостей.

Ответ 3

Debian имеет пакет под именем gcc-4.8 (или для компилятора С++, g++ - 4.8). Установка этих пакетов не испортит вашу ОС, если вы не переименуете ее в g++. Пакет указан как экспериментальный. Информация о пакете здесь.

Обновление: g++ - 4.8 теперь находится в testing, но обновленный пакет находится в unstable

Ответ 4

Быстрые:

  • Просто обновляйтесь до тестирования, он прочный и предлагает вам несколько параллельных версий gcc. Аналогично для Ubuntu, 12.10. Я параллельно gcc/g++ 4.4, 4.5, 4.6 и 4.7.

  • Попробуйте архив backports Debian, он может иметь порт gcc 4.8.

  • Использование виртуализации: я предпочитаю libvirt/kvm, который невероятно легкий в Linux, поскольку он основан на ядре. Мой сервер amd64 имеет две другие 32-разрядные установки именно по этой причине.

  • Не очень-то вопрос...

Ответ 5

Вы пробовали chroot, чтобы установить новый аромат Debian?

  • вы можете играть без страха, чтобы разорвать вашу рабочую систему.

  • установите аромат Debian, который поддерживает желаемую версию gcc.

  • установите версию gcc вручную, не затрагивая рабочую систему. http://wiki.blender.org/index.php/Dev:Doc/Building_Blender/Linux/Chroot