Как сделать более приоритетной одну версию компилятора над другой в linux ubuntu
У меня установлено 2 версии компилятора, gсс-9 и gcc-10, при использовании по умолчанию выбирается gcc9. Как мне сделать более приоритетным gcc10?
Ответы (2 шт):
Перевод ответа @jopasserat.
Как уже предложил @Tommy, вы должны использовать update-alternatives.
Он присваивает значения каждому программному обеспечению семейства, так что он определяет порядок, в котором будут вызываться приложения.
Он используется для поддержания различных версий одного и того же программного обеспечения в системе. В вашем случае вы сможете использовать несколько склонений gcc, и один будет предпочтительным.
Чтобы выяснить текущие приоритеты gcc, введите команду, указанную в комментарии @tripleee's:
update-alternatives --query gcc
Теперь обратите внимание на приоритет, приписываемый gcc-4.4, потому что вам нужно будет дать более высокий приоритет gcc-3.3.
Чтобы установить свои альтернативы, вы должны иметь что-то вроде этого (предполагая, что ваша установка gcc расположена на /usr/bin/gcc-3.3, а приоритет gcc-4.4 меньше 50) :
update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-3.3 50
--upd--
Наконец, вы также можете использовать интерактивный интерфейс update-alternatives для легкого переключения между версиями. Введите update-alternatives --config gcc, чтобы вам было предложено выбрать версию gcc, которую вы хотите использовать среди установленных.
-- upd 2 --
Теперь, чтобы исправить переменную окружения CXX в масштабах всей системы, вам нужно поместить строку, обозначенную @DipSwitch's, в ваш файл .bashrc (это будет применяться только к вашему пользователю, что, на мой взгляд, безопаснее):
echo 'export CXX=/usr/bin/gcc-3.3' >> ~/.bashrc
Пусть компилятор по умолчанию будет называться просто gcc. Тогда:
cd /usr/bin
sudo ln -s gcc10 gcc
Теперь, если в ваших Makefile-ах встретится gcc, то будет вызван gcc10.