我以前在Mac上使用Xcode 3附带的gcc编译器成功安装了Jekyll gem。不幸的是我无法将它安装在现在拥有Xcode 4.1的其他Mac上。这台Mac过去常常使用Xcode 3,但我使用命令sudo /Developer-3.2.5/Library/uninstall-devtools --mode=all
卸载了它。
尝试sudo gem install jekyll
时,我收到如下所示的编译错误:
Building native extensions. This could take a while... ERROR: Error installing jekyll: ERROR: Failed to build gem native extension. /usr/local/bin/ruby extconf.rb creating Makefile make gcc -I. -I/usr/local/lib/ruby/1.8/i686-darwin10.3.2 -I/usr/local/lib/ruby/1.8/i686-darwin10.3.2 -I. -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -fno-common -D_XOPEN_SOURCE=1 -fno-common -pipe -fno-common -c porter.c porter.c:31:44: error: stdlib.h: No such file or directory porter.c:32:47: error: string.h: No such file or directory porter.c: In function ‘create_stemmer’: porter.c:85: warning: incompatible implicit declaration of built-in function ‘malloc’ porter.c: In function ‘setto’: porter.c:199: warning: incompatible implicit declaration of built-in function ‘memmove’ make: *** [porter.o] Error 1 Gem files will remain installed in /usr/local/lib/ruby/gems/1.8/gems/fast-stemmer-1.0.0 for inspection. Results logged to /usr/local/lib/ruby/gems/1.8/gems/fast-stemmer-1.0.0/ext/gem_make.out
这里似乎有一个相当根本的问题!我怎样才能解决这个问题?我正在使用Ruby 1.8.7和RubyGems 1.3.7 1.8.10。
提前致谢。
答案 0 :(得分:2)
现在这很奇怪。我昨晚重新安装了Xcode 4.1并修复了问题:我可以编译原生扩展并安装Jekyll gem。
我能够重新安装Xcode,因为根据Mac App Store它根本没有安装,即使我很高兴使用它!我认为商店必须在/Applications
文件夹中查找安装XCode 应用程序的存在,我删除了该文件夹,因为它只是一个安装程序,占用超过3GB。
答案 1 :(得分:1)
在运行gem install jekyll
之前尝试按RVM with Lion输入export CC=gcc-4.2
如果这样可以解决您的问题,那是因为gems取决于GCC而不是LLVM,现在是4.1中的默认值。将export CC=gcc-4.2
添加到〜/ .bashrc文件中,以便每次需要编译gem时都不必输入它。
答案 2 :(得分:1)
RubyGems 1.3.7已经过时了。我们谈的是1.8.9 ......我建议你升级它。
我正在使用Lion没有任何问题,但我不得不承认我没有使用系统Ruby。我使用RVM安装了不同的1.8.7(和1.9.2)版本。