Установка более старой версии gcc (3.4.3) в Ubuntu 14.04 (в настоящее время установлено 4.8)

У меня установлен gcc 4.8, но мне также нужно установить gcc 3.4.3. Я следовал за этими шагами:

  1. Скачал gcc 3.4.3 с gcc.parentingamerica.com/releases.
  2. Извлекали смолу.
  3. ./configure
  4. делать

Затем выдает эту ошибку: http://paste.ubuntu.com/24807240/

Кто-нибудь может подсказать, что не так и как попросить gcc использовать старую версию после установки?

ОС: Ubuntu 14.04 LTS, 64-битная

2 ответа

Решение

Проверьте текущую версию, запустив gcc -v,

Далее вы хотите установить предыдущую версию.

  1. Заgcc-3.4

Поскольку эта версия доступна в более старых выпусках Ubuntu, нам необходимо иметь соответствующие репозитории для этой версии. Из некоторых поисков я обнаружил, что они следующие, которые должны быть добавлены к /etc/apt/sources.list

deb     http://snapshot.debian.org/archive/debian/20070730T000000Z/ lenny main
deb-src http://snapshot.debian.org/archive/debian/20070730T000000Z/ lenny main
deb     http://snapshot.debian.org/archive/debian-security/20070730T000000Z/ lenny/updates main
deb-src http://snapshot.debian.org/archive/debian-security/20070730T000000Z/ lenny/updates main

Потом после выполнения sudo apt-get update новые репозитории будут доступны.

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

Следовательно,

sudo apt-get install gcc-3.4 g++-3.4

2. Проверка доступных компиляторов

На этом этапе у каждого будет два набора компиляторов (по одному для каждого g++ а также gcc). Они могут быть проверены dpkg --list | grep compiler,

dpkg --list | grep compiler

dpkg --list | grep compile
ii  g++                                                   4:4.8.2-1ubuntu6                                    amd64        GNU C++ compiler
ii  g++-3.4                                               3.4.6-5                                             amd64        The GNU C++ compiler
ii  g++-4.8                                               4.8.4-2ubuntu1~14.04.1                              amd64        GNU C++ compiler
ii  gcc                                                   4:4.8.2-1ubuntu6                                    amd64        GNU C compiler
ii  gcc-3.4                                               3.4.6-5                                             amd64        The GNU C compiler
ii  gcc-4.8                                               4.8.4-2ubuntu1~14.04.1                              amd64        GNU C compiler
ii  hardening-includes                                    2.5ubuntu2.1                                        all          Makefile for enabling compiler flags for security hardening
ii  libllvm3.6:amd64                                      1:3.6-2ubuntu1~trusty1                              amd64        Modular compiler and toolchain technologies, runtime library
ii  libxkbcommon0:amd64                                   0.4.1-0ubuntu1                                      amd64        library interface to the XKB compiler - shared library
ii  pkg-config                                            0.26-1ubuntu4                                       amd64        manage compile and link flags for libraries

Вы можете проверить место установки, если вам это нужно.

Важным является расположение двух наборов компиляторов, которые могут быть перечислены

ls -lh /usr/bin/gcc*
lrwxrwxrwx 1 root root    7  5月 13  2016 /usr/bin/gcc -> gcc-4.8
-rwxr-xr-x 1 root root  91K  1月  4  2007 /usr/bin/gcc-3.4
-rwxr-xr-x 1 root root 758K  1月 27  2016 /usr/bin/gcc-4.8

а также

    ls -lh /usr/bin/g++*
lrwxrwxrwx 1 root root    7  4月  8  2014 /usr/bin/g++ -> g++-4.8
-rwxr-xr-x 1 root root  93K  1月  4  2007 /usr/bin/g++-3.4
-rwxr-xr-x 1 root root 758K  1月 27  2016 /usr/bin/g++-4.8

  1. Выбор компилятора для текущей цели (сборка приложения)

После установки необходимых компиляторов можно просто переключаться между компиляторами. Это делается путем обновления списка альтернативных версий приложения. Для этого update-alternative Команда должна быть запущена с определенными параметрами.

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 --install /usr/bin/gcc gcc /usr/bin/gcc-3.4 40 --slave /usr/bin/g++ g++ /usr/bin/g++-3.4
sudo update-alternatives --config gcc

Это будет ссылка g++ в gcc и при изменении только gcc g++ изменится автоматически.

Затем всякий раз, когда вы хотите изменить компилятор, введите это:

sudo update-alternatives --config gcc

Затем пользователя спрашивают, какой компилятор выбрать.

    sudo update-alternatives --config gcc
    There are 2 choices for the alternative gcc (providing /usr/bin/gcc).

      Selection    Path              Priority   Status
    ------------------------------------------------------------
    * 0            /usr/bin/gcc-4.8   60        auto mode
      1            /usr/bin/gcc-3.4   40        manual mode
      2            /usr/bin/gcc-4.8   60        manual mode

Press enter to keep the current choice[*], or type selection number:

Здесь вы можете выбрать, нажав клавишу (0,1) и затем нажав Enter. Изменения в текущей выбранной версии могут быть проверены gcc -v


Удалениеupdate-alternative

  1. Если вы хотите сохранить альтернативный компилятор установленным. Затем просто перейдите в автоматический режим в update-alternative это вариант 0.
  2. Если вы хотите удалить альтернативный компилятор, то удалите компилятор как sudo apt-get remove gcc-3.4 g++-3.4тогда беги

sudo update-alternatives --config gcc

Программа update-alternatives будет искать ссылки и обнаруживать, что они отсутствуют, и автоматически удаляет альтернативу, возвращаясь к другой доступной опции.

sudo update-alternatives --config gcc
update-alternatives: warning: alternative /usr/bin/gcc-3.4 (part of link group gcc) doesn't exist; removing from list of alternatives
There is only one alternative in link group gcc (providing /usr/bin/gcc): /usr/bin/gcc-4.8
Nothing to configure.

Невозможно иметь версии одного и того же пакета, так как они могут быть конфликтующими файлами, например: у вас возникнут проблемы при попытке обновить один из пакетов, так как они будут размещены в одном месте.

Сказав, что у вас есть возможность понизить версию программы до более старой, вот как это сделать:

  1. откройте эмулятор терминала и введите apt-cache showpkg <package-name> список доступных версий будет напечатан
  2. Затем введите sudo apt-get install <package-name>=<package-version-number> установить версию, которую вы предпочитаете
  3. тип apt-mark hold <package-name> это предотвратит обновление пакета
  4. если у вас есть тип проблемы man apt открыть руководство по команде
Другие вопросы по тегам