[Comm] Переключение между gcc2 и gcc3

Прокопьев Евгений =?iso-8859-1?q?john_=CE=C1_rmts=2Edonpac=2Eru?=
Пн Апр 14 15:24:19 MSD 2003


Здравствуйте!

Понял, что для этих целей служит update-alternatives

Но при установленных

gcc3.2-c++-3.2.1-alt2
libgcc3.2-3.2.1-alt2
gcc-common-1.2.1-alt2
gcc3.2-3.2.1-alt2
gcc2.96-c++-2.96-alt3
gcc2.96-2.96-alt3
libstdc++2.96-devel-2.96-alt3
libstdc++2.96-2.96-alt3
libstdc++3.2-devel-3.2.1-alt2
libstdc++3.2-3.2.1-alt2

update-alternatives --display gcc говорит следующее:

gcc - status is auto.
  link currently points to /usr/bin/gcc_wrapper
/usr/bin/gcc_wrapper - priority 40
  slave g77: /usr/bin/gcc_wrapper
  slave gcj: /usr/bin/gcc_wrapper
  slave g++: /usr/bin/gcc_wrapper
Current `best' version is /usr/bin/gcc_wrapper.

Дальше я проделал следующее:

# update-alternatives --install gcc gcc /usr/bin/gcc-2.96 41 --slave g++ 
g++ /usr/bin/g++-2.96
mv: cannot stat `/usr/bin/g++': No such file or directory
update-alternatives: unable to rename /usr/bin/g++ to g++: Invalid 
cross-device link

# update-alternatives --display gcc
gcc - status is auto.
  link currently points to /usr/bin/gcc-2.96
/usr/bin/gcc_wrapper - priority 40
  slave g77: /usr/bin/gcc_wrapper
  slave gcj: /usr/bin/gcc_wrapper
  slave g++: /usr/bin/gcc_wrapper
/usr/bin/gcc-2.96 - priority 41
Current `best' version is /usr/bin/gcc-2.96.

В результате:

$ gcc
bash: /usr/bin/gcc: No such file or directory
$ g++
bash: g++: command not found
]$ ls -l /usr/bin/*g++*
lrwxrwxrwx    1 root     root           23 Апр 14 14:51 
/usr/bin/g++-2.96 -> i586-alt-linux-g++-2.96
-rwxr-xr-x    2 root     root        82124 Ноя 29 18:25 /usr/bin/g++-3.2
lrwxrwxrwx    1 root     root           36 Апр  4 15:40 
/usr/bin/i586-alt-linux-g++ -> /etc/alternatives/i586-alt-linux-g++
-rwxr-xr-x    1 root     root        81768 Ноя 27 23:05 
/usr/bin/i586-alt-linux-g++-2.96
-rwxr-xr-x    2 root     root        82124 Ноя 29 18:25 
/usr/bin/i586-alt-linux-g++-3.2
$ ls -l /usr/bin/*gcc*
lrwxrwxrwx    1 root     root           23 Апр 14 14:50 
/usr/bin/gcc-2.96 -> i586-alt-linux-gcc-2.96
-rwxr-xr-x    2 root     root        80972 Ноя 29 18:25 /usr/bin/gcc-3.2
lrwxrwxrwx    1 root     root           21 Апр  3 12:33 /usr/bin/gccbug 
-> i586-alt-linux-gccbug
-rwxr-xr-x    1 root     root         3224 Ноя 29 14:08 /usr/bin/gcc_wrapper
lrwxrwxrwx    1 root     root           36 Апр  4 15:40 
/usr/bin/i586-alt-linux-gcc -> /etc/alternatives/i586-alt-linux-gcc
-rwxr-xr-x    1 root     root        81768 Ноя 27 23:05 
/usr/bin/i586-alt-linux-gcc-2.96
-rwxr-xr-x    2 root     root        80972 Ноя 29 18:25 
/usr/bin/i586-alt-linux-gcc-3.2
-rwxr-xr-x    1 root     root        15255 Ноя 29 14:08 
/usr/bin/i586-alt-linux-gccbug

Как теперь все вернуть в работоспособное состояние (только не путем 
правки ссылок, нужен же наверное этот update-alternatives зачем-то :) ), 
точнее, переключаться между двумя работоспособными состояниями?

И еще вопрос: а где определяется соответствие между версиями gcc и 
libstdc++? Не может компилятор ли в результате манипуляций начать 
использовать чужую стандартную библиотеку?

-- 
С уважением, Прокопьев Евгений




Подробная информация о списке рассылки community