Я работаю на CentOS 5.5, и мой компьютер до сих пор использовал gcc-4.1.2, а под /usr/lib/gcc/x86_64-redhat-linux/
было 2 индекса: 4.1.1 и 4.1.2.Для использования некоторых программ я должен обновить gcc.
Но после того, как я установил gcc-4.7.0 с загруженного gcc-4.7.0.tar.gz (я не использовал yum, потому что, когда я пробовал все серверы,сказал мне, что у меня последняя версия, которая, конечно, не соответствует действительности, и, возможно, это также было вызвано проблемой, с которой я сейчас сталкиваюсь), /usr/lib/gcc/x86_64-redhat-linux/4.7.0/
был создан точно так же, как индексы 4.1.1 и 4.1.2, поэтому в разделе /usr/lib/gcc/x86_64-redhat-linux/
было 3 индекса: 4.1.1, 4.1.2 и 4.7.0.И под /usr/lib/gcc/x86_64-redhat-linux/4.7.0/
было 6 индексов:
bin include lib lib64 libexex share
Похоже, что 4.7.0 был успешно установлен, но когда я запустил
gcc --version
, результат все еще был
gcc (GCC) 4.1.2 20080704 (Red Hat 4.1.2-48)
Copyright (C) 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is
NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Я также побежал
update-alternatives --install /usr/bin/gcc gcc /usr/lib/gcc/x86_64-redhat-linux/4.7.0 40
, чтобы поднять приоритет 4.7.0, и когда я побежал
update-alternatives --config gcc
, он сказал
There is 1 program that provides 'gcc'.
Selection Command
-----------------------------------------------
*+ 1 /usr/lib/gcc/x86_64-redhat-linux/4.7.0
Enter to keep the current selection[+], or type selection number:
И я напечатал 1, все выглядело так, как будто 4.7.0 был выбран в качестве gcc по умолчанию, но когда я запустил gcc --version
, результат не изменился!Все еще 4.1.2.
После этого я даже удалил все 4.1.2 gcc и связанные с ним программы rpm -e
и удалил индекс, но результат gcc --version
стал
-bash: gcc: command not found.
Это не изменилось, когда я переустановил 4.7.0.
В конце концов, когда я искал ссылки /usr/bin/gcc/
, я нашел
/usr/bin/gcc -> /etc/alternatives/gcc
и ссылку /etc/alternatives/gcc
было
/etc/alternatives/gcc -> /usr/lib/gcc/x86_64-redhat-linux/4.7.0
это должно быть результатом моего запуска строки update-alternatives
, так что это сработало.Сделал ссылку на 4.7.0.Так почему же эта ссылка не позвонила в конце 4.7.0?Я не могу выяснить.
Я даже сделал прямую ссылку на 4.7.0 тогда:
ln -s /usr/lib/gcc/x86_64-redhat-linux/4.7.0 /usr/bin/gcc
однако это все еще не работало.
Яочень смущен этим.Буду благодарен за вашу помощь.Большое спасибо!
ps. Большое спасибо Басиле Старинкевичу за то, что он заметил, что я дал следующие объяснения:
У меня есть /usr/bin/
в моем ПУТИ, так что это должно бытьОК.
Мне кажется, что /usr/bin/gcc/
должен быть связан с исполняемым файлом, но не с индексом, поэтому ссылка на 4.7.0 неверна.Но может ли кто-нибудь сказать мне, на какой исполняемый файл ссылаться или с каким /usr/bin/
связан обычный компьютер?Скорее всего, это может привести к решению проблемы.
Я не могу запустить configure
еще раз, потому что сам configure
требует gcc, но теперь он не найден.Поэтому я боюсь, что проблема не может быть решена этим.