在Solaris 10上,如何让mkmf使用gcc而不是/ opt / SUNWspro / bin / cc?
我想安装厨师使用gem安装厨师。 这是失败的:
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环境variables设置为gcc完全没有。
Cross从StackOverflow发布
如果你的CSWruby包是最新的(看起来是因为二进制文件是ruby18),你可以使用替代机制来切换到rbconfig.rb,它被设置为使用/ opt / csw / gcc4 / bin / gcc而不是太阳编译器。 如果它不是最新的,那么有一个实用工具包含了一段时间,叫做cswrbconfig,允许在编译器之间切换。 我忘记了我也添加了哪个版本的包,但是如果内存服务的话,这个function已经可以使用一年多了。
如果您对CSWruby(或其他OpenCSW软件包)有更多疑问,请在freenode irc的#opencsw中find维护人员。
(我是OpenCSWruby维护者。)
在定义之后你是否输出了CC?
CC=/usr/sfw/bin/gcc export CC
然后运行你的mkmf的东西。
编辑 – 哈西 – 创build一个链接
mkdir -p /opt/SUNWspro/bin/ ln -s /usr/sfw/bin/gcc /opt/SUNWspro/bin/cc
注意我现在还在gcc居住在/ usr / sfw中,“固定”了CC =上面的path。
编辑Makefile并修改CCvariables到你的gcc二进制文件,然后再试一次。
是否有./configure步骤? 如果是这样,你可以尝试在运行之前设置CC envvariables。