On Tue, Jan 31, 2006 at 04:35:32PM +0200, Dmitrijs Drozdeckis wrote: > Ne podskazhite kak ustanovit libgcc3.4 и libstdc++3.4 , chto bi eto > rabotalo vmeste s versiej 3.3 Просто установить libstdc++3.4 из Сизифа в настоящий момент нельзя - проблема в том, что в сборке libstdc++3.3, вошедшей в Master 2.4, слишком жёсткие зависимости на конкретную сборку libgcc3.3, а при установке libstdc++3.4 необходимо _заменить_ libgcc3.3 на libgcc3.4. Однако эту проблему можно решить, если предварительно обновить пакеты libgcc3.3 и libstdc++3.3 (также придётся обновить и соответствующие *-devel); в Сизифе этих пакетов сейчас уже нет, но подходящую версию можно взять из Compact 3.0. Далее можно установить gcc3.4 рядом с gcc3.3, после чего выбирать нужную версию компилятора одним из следующих способов: 1) Командой select-gcc можно выбрать версию компилятора, которая будет вызываться командами gcc, g++, g77 без явного указания нужной версии. Неудобство этого метода в том, что для переключения требуются права root. 2) /usr/bin/gcc (а также g++, g77) - это на самом деле ссылка на программу gcc_wrapper, которая при установленной переменной окружения GCC_VERSION вызывает ту версию gcc, которая указана в этой переменной. Благодаря этому можно выбирать нужную версию gcc с помощью команд вида export GCC_VERSION=3.4. Единственная проблема в том, что существуют программы, система сборки которых использует переменную GCC_VERSION для своих собственных нужд - с ними такой метод переключения версии gcc не сработает. 3) Можно напрямую вызывать gcc-3.4, g++-3.4 и т.п. (например, указать CXX=g++-3.4 при запуске configure или make). В этом случае gcc_wrapper не используется, поэтому теряется возможность автоматического использования ccache, включающаяся через export GCC_USE_CCACHE=1 (это тоже реализовано в gcc_wrapper); при необходимости использования ccache в этом случае придётся явно писать что-то типа CC="ccache gcc-3.4".