[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