Изменение компилятора C по умолчанию в Linux с использованием SCons - PullRequest
15 голосов
/ 31 мая 2010

На моей платформе Linux у меня есть несколько версий gcc.

Под usr/bin У меня есть:

  • gcc34
  • gcc44
  • gcc

Вот несколько выводов:

$ gcc --version
gcc (GCC) 4.1.2 20080704 (Red Hat 4.1.2-48)

$ gcc44 --version
gcc44 (GCC) 4.4.0 20090514 (Red Hat 4.4.0-6)

Мне нужно использовать версию 4.4 gcc, однако по умолчанию используется версия 4.1.

У меня есть способ заменить /usr/bin/gcc и сделать gcc44 компилятор по умолчанию , не использующий символическую ссылку на /usr/bin/gcc44?

Причина, по которой я не могу использовать символическую ссылку, заключается в том, что мой код должен быть доставлен в пакете RPM с использованием mock. mock создает минимальную установку linux с нуля и просто устанавливает указанные зависимости, прежде чем скомпилировать в нее мой код. Я не могу настроить эту "минимальную установку".

В идеале идеальным решением было бы установить официальный RPM-пакет, который заменит gcc на gcc44 в качестве стандартного компилятора. Есть ли такой пакет? Это вообще возможно / хорошо?

Дополнительная информация

Я должен использовать SCons (альтернатива make) и это не позвольте мне указать двоичный файл для gcc.

Я также приму любой ответ, который скажет мне, как указать двоичный файл gcc в моем файле SConstruct.

Ответы [ 3 ]

14 голосов
/ 31 мая 2010
  1. Один из способов - скомпилировать и установить gcc из исходного кода.

  2. См. http://old.nabble.com/Choosing-compiler-td4675207.html

Из этого:

env = Environment()
env.Replace(CC = "my_cc_compiler")

Или, согласно ответу на этот вопрос ,

cc = env['gcc44']
7 голосов
/ 01 июня 2012

Это долгий путь в прошлом, но я просто решил добавить найденное решение, которое не требует изменения файла SConscript. Это было полезно для меня, так как мне нужно собрать v8 под centos 5, поэтому, возможно, это может быть полезно и для кого-то еще.

CC=gcc44 CXX=g++44 scons

Вот и все!

1 голос
/ 14 февраля 2018

Один из способов, который я опробовал и который работает:

alias cc='/usr/bin/gcc44' 

или

alias gcc='/usr/bin/gcc44' 

, который зависит от того, используете ли вы cc или gcc для компиляции кода.

вы можете запускать вышеуказанные команды всякий раз, когда вы хотите использовать cc / gcc, или вы можете добавить строку выше ~ / .bashrc или / etc / bashrc file.

Примечание: Вы должны выполнить source ~/.bashrc или source /etc/bashrc после добавления псевдонима

...