Ответ 1
-
Один из способов заключается в компиляции и установке
gcc
из источника.
Из этого:
env = Environment()
env.Replace(CC = "my_cc_compiler")
Или, как ответ на этот вопрос,
cc = env['gcc44']
На моей платформе 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 (a make
альтернатива) и он не позволяет me укажите бинарный файл для gcc
.
Я также буду принимать любой ответ, который расскажет мне, как указать двоичный файл gcc
в моем файле SConstruct
.
Один из способов заключается в компиляции и установке gcc
из источника.
Из этого:
env = Environment()
env.Replace(CC = "my_cc_compiler")
Или, как ответ на этот вопрос,
cc = env['gcc44']
В прошлом это был долгий путь, но я просто подумал, что добавлю найденное решение, которое не требует изменения файла SConscript. Это было полезно для меня, поскольку мне нужно построить v8 под centos 5, так что, возможно, это может быть полезно и для кого-то другого.
CC=gcc44 CXX=g++44 scons
Что это!