Как сделать более приоритетной одну версию компилятора над другой в 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
→ Ссылка
Автор решения: Sergey

Пусть компилятор по умолчанию будет называться просто gcc. Тогда:

cd /usr/bin
sudo ln -s gcc10 gcc

Теперь, если в ваших Makefile-ах встретится gcc, то будет вызван gcc10.

→ Ссылка