Существует три вероятные возможности:
- Он установлен правильно и вошел в каталог в вашем
$PATH
раньше, чем ваша предыдущая установка GCC, но запись внутренней хэш-таблицы Bash по-прежнему указывает на старуюGCC. - Он установлен правильно, но вошел в каталог в вашей
$PATH
позже, чем предыдущая установка GCC. - In установлен правильно, но исполняемый файл не назван
gcc
.
Если # 1, просто запустите команду hash -r
и попробуйте снова.Чтобы избежать частых поисков $PATH
, Bash использует хеш-таблицу для сопоставления исполняемых имен с исполняемыми местоположениями.Когда вы устанавливаете новый исполняемый файл ранее в $PATH
с тем же именем, что и позже в $PATH
, Bash об этом не знает.Запуск hash -r
говорит "очистить вашу хеш-таблицу".В качестве альтернативы, вы можете просто запустить hash -d gcc
, чтобы сказать «забудьте о gcc в вашей хэш-таблице».
Если # 2, то вам нужно либо выполнить gcc по его полному имени (например, /opt/local/bin/gcc
), либоизмените ваш $PATH
так, чтобы каталог, содержащий новый gcc, был раньше, чем каталог вашего существующего gcc.Предполагая, что вы установили MacPorts нормально, это уже должно быть сделано для вас - MacPorts помещает /opt/local/bin
раньше в $PATH
, чем /usr/bin
, изменяя файл запуска ~/.bash_profile
.
Если # 3, тогда рисунокиз какого имени был дан исполняемый файл.Ему почти наверняка дали имя с префиксом gcc, поэтому, если вы наберете gcc, а затем дважды нажмете клавишу tab, Bash выдаст вам список всех команд, начинающихся с gcc.Вполне вероятно, что ему дали имя likw gcc-4.6
или gcc-mp-4.6
.