У меня установлен gcc 4.6.3:
gcc --version
gcc (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3
Я установил более новую версию:
apt-get install gcc-4.7
Но я все равно получаю результат «gcc 4.6.3» при вводе [ 113]. Как это исправить?
Я использую Ubuntu 12.04, и я сделал
sudo apt-get update
sudo apt-get upgrade
Это потому, что у вас установлены обе версии, а версия 4.6 рассматривается как версия по умолчанию.
Вы можете явно выбрать, какой использовать.
$ gcc-4.7 --version
gcc-4.7 (Ubuntu/Linaro 4.7.2-22ubuntu4) 4.7.2
[...]
$ gcc-4.6 --version
gcc-4.6 (Ubuntu/Linaro 4.6.3-15ubuntu3) 4.6.3
[...]
Самый простой способ сделать gcc-4.7
по умолчанию gcc
- переместить символическую ссылку /usr/bin/gcc
:
sudo rm /usr/bin/gcc
sudo ln -s /usr/bin/gcc-4.7 /usr/bin/gcc
Пожалуйста, следуйте этой инструкции: Сборка gcc (Здесь: версия: 4.7.2)
tar -xf gcc-4.7.2.tar.bz2
mkdir gcc-build
cd gcc-build
../gcc-4.7.2/configure --enable-languages=c,c++
make -j 4
make install
make clean (OPTIONAL)
cd ..
В настоящее время самопроверка gcc не работает, поэтому этот шаг здесь опущен. Теперь вы должны проверить, что новая версия компилятора 4.7.2 вызывается вместо компилятора, используемого для процесса сборки (здесь gcc-4.5.3). Введите следующие команды:
gcc --version; g++ --version
Новый компилятор был установлен в /usr/local/bin
. Теперь это компилятор по умолчанию, потому что в переменной PATH /usr/local/bin
находится перед /usr/bin
.
Если вы ищете установку старой версии gcc, установите ее непосредственно из командной строки. Например, если вы хотите установить gcc-4.4.6, а последняя доступная версия - 4.7.3. Если вы введете:
sudo apt-get install gcc
, то по умолчанию будет установлена последняя версия. Чтобы установить gcc-4.4.6, просто наберите:
sudo apt-get install gcc-4.4
Но ваш компилятор по умолчанию - это самый последний gcc. Чтобы удалить последний gcc как тип по умолчанию:
sudo rm /usr/bin/gcc
Теперь сделаем gcc-4.4.6 компилятором по умолчанию (это замена gcc на gcc-4.4.x), введите:
sudo ln -s /usr/bin/gcc-4.4 /usr/bin/gcc
Надеюсь, что это прояснит вышеупомянутую проблему.