Я скачал g ++ 4.8 в Ubuntu 12.10, выполнив:
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install g++-4.8
, но когда я делаю:
sudo update-alternatives --config g++
для переключения версий g ++, он говорит:
update-alternatives: error: no alternatives for g++.
Однако, если я это сделаю:
g++ --version
там написано:
g++ (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3
Copyright (C) 2011 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.
Как мне установить мою установку g ++ 4.8 на g ++ по умолчанию?
Прежде всего, вы должны выяснить, где находятся ваши 4.8 двоичные файлы всех инструментов:
$ which gcc-4.8
/usr/bin/gcc-4.8
$ which g++-4.8
/usr/bin/g++-4.8
$ ls /usr/bin/*-4.8
/usr/bin/cpp-4.8 /usr/bin/x86_64-linux-gnu-cpp-4.8
/usr/bin/g++-4.8 /usr/bin/x86_64-linux-gnu-g++-4.8
/usr/bin/gcc-4.8 /usr/bin/x86_64-linux-gnu-gcc-4.8
/usr/bin/gcc-ar-4.8 /usr/bin/x86_64-linux-gnu-gcc-ar-4.8
/usr/bin/gcc-nm-4.8 /usr/bin/x86_64-linux-gnu-gcc-nm-4.8
/usr/bin/gcc-ranlib-4.8 /usr/bin/x86_64-linux-gnu-gcc-ranlib-4.8
/usr/bin/gcov-4.8
Итак, у нас есть все наши двоичные файлы, теперь давайте посмотрим, доступны ли некоторые символические ссылки для таких двоичных файлов:
$ cd /usr/bin
$ ls -l gcc* cpp g++
lrwxrwxrwx 1 root root 7 sep 18 14:02 cpp -> cpp-4.7
lrwxrwxrwx 1 root root 7 abr 22 2013 g++ -> g++-4.7
lrwxrwxrwx 1 root root 7 sep 18 14:02 gcc -> gcc-4.7
Как мы видим, только cpp
, g++
и gcc
имеют символические ссылки. У нас есть два варианта здесь.
Мы заменяем символические ссылки нашими, сначала удаляя фактические:
sudo rm /usr/bin/cpp /usr/bin/gcc /usr/bin/g++
Затем создавая наши
sudo ln -s /usr/bin/cpp-4.8 /usr/bin/cpp
sudo ln -s /usr/bin/gcc-4.8 /usr/bin/gcc
sudo ln -s /usr/bin/g++-4.8 /usr/bin/g++
Чтобы вернуть их обратно используйте те же команды, но с 4.7 или 4.6 вместо
sudo rm /usr/bin/cpp /usr/bin/gcc /usr/bin/g++
sudo ln -s /usr/bin/cpp-4.7 /usr/bin/cpp
sudo ln -s /usr/bin/gcc-4.7 /usr/bin/gcc
sudo ln -s /usr/bin/g++-4.7 /usr/bin/g++
Вам необходимо сообщить update-alternatives
, что у вас есть 2 компилятора C ++, создать запись для каждого из них, а затем настроить, какой из них вы хотите использовать. Это делается следующим образом:
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.6.3 60
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.8 40
sudo update-alternatives --config g++
С этого момента при переключении компиляторов требуется только одна команда:
sudo update-alternatives --config g++
См. man update-alternatives
для получения дополнительной информации.
Источник: Как использовать несколько экземпляров gcc? sup>
Это отличное описание и пошаговая инструкция по созданию и управлению альтернативами master и slave (gcc и g ++).
Вскоре, это
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.7 60 --slave /usr/bin/g++ g++ /usr/bin/g++-4.7
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 40 --slave /usr/bin/g++ g++ /usr/bin/g++-4.8
sudo update-alternatives --config gcc