Как заставить mkmf использовать gcc вместо / opt / SUNWspro / bin / cc в Solaris 10?
Я пытаюсь установить Chef с помощью gem install chef. Это не удается:
Building native extensions. This could take a while...
ERROR: Error installing chef:
ERROR: Failed to build gem native extension.
/opt/csw/bin/ruby18 extconf.rb
creating Makefile
make
/opt/SUNWspro/bin/cc -I. -I/opt/csw/lib/ruby/1.8/i386-solaris2.9 -I/opt/csw/lib/ruby/1.8 /i386-solaris2.9 -I. -I/opt/csw/include -D_FILE_OFFSET_BITS=64 -KPIC -xO3 -m32 -xarch=386 -KPIC -Wall -funroll-loops -c yajl.c
make: /opt/SUNWspro/bin/cc: Command not found
make: *** [yajl.o] Error 127
Gem files will remain installed in /opt/csw/lib/ruby/gems/1.8/gems/yajl-ruby-0.8.2 for inspection.
Results logged to /opt/csw/lib/ruby/gems/1.8/gems/yajl-ruby-0.8.2/ext/yajl/gem_make.out
Изучение /opt/csw/lib/ruby/gems/1.8/gems/yajl-ruby-0.8.2/ext/yajl/Makefile дает:
CC = /opt/SUNWspro/bin/cc
Важно отметить, что установка переменной среды CC на gcc абсолютно ничего не дает.
Кросс опубликован из Переполнение стека
Вы экспортировали CC после его определения?
CC=/usr/sfw/bin/gcc
export CC
Затем запустите свой файл mkmf.
Edit - hacky - создать ссылку
mkdir -p /opt/SUNWspro/bin/
ln -s /usr/sfw/bin/gcc /opt/SUNWspro/bin/cc
Обратите внимание, что я также «исправил» путь в CC = выше, поскольку теперь gcc находится в / usr / sfw.
Если ваш пакет CSWruby является текущим (похоже, так как двоичный файл - ruby18), вы можете использовать альтернативный механизм для переключения на rbconfig.rb, который настроен на использование / opt / csw / gcc4 / bin / gcc вместо солнца. компилятор. Если он не совсем актуален, на некоторое время была включена утилита cswrbconfig, которая позволяла переключаться между компиляторами. Я забыл, какую версию пакета я добавил, но эта функция доступна уже больше года, если не изменяет память.
Если у вас есть дополнительные вопросы о CSWruby (или других пакетах OpenCSW), обратитесь к сопровождающим в #opencsw на freenode irc.
(Я сопровождаю OpenCSW ruby.)
Отредактируйте Makefile и измените переменную CC на свой двоичный файл gcc, затем повторите попытку.
Есть ли шаг ./configure? Если это так, вы можете попробовать установить переменную CC env перед ее запуском.