2013-02-15 71 views
1

操作系统:Mac OS X 10.8.2 的XCode:最新安装的命令行工具(版本4.6) 的Rails:3.2.3版JSON宝石未能编译在Mac OS X 10.8.2

我试着为我正在处理的项目(定期执行该项目)生成路由,当我收到错误消息时,推荐我捆绑安装和捆绑exec。我做了,这一次,编译JSON Gem(版本1.7.7)时进程中断了。

对StackOverflow做了一些研究,建议更新XCode的命令行工具,我做了,但是这并没有解决问题。

我尝试安装的JSON版本1.7.7分开,它失败了,告诉我去寻找错误日志中:

~/.rvm/gems/ruby-1.9.3-p125/gems/json-1.7.7/ext/json/ext/generator/gem_make.out 

曰:

/Users/mine/.rvm/rubies/ruby-1.9.3-p125/bin/ruby extconf.rb 
creating Makefile 

make 
compiling generator.c 
make: /usr/bin/gcc-4.2: No such file or directory 
make: *** [generator.o] Error 1 

我找了/ usr/bin/gcc-4.2,实际上,它不在那里。但是,当我做:

ls -l /usr/bin/gcc 

这里就是我得到:

lrwxr-xr-x 1 root wheel 12 Feb 14 15:49 /usr/bin/gcc -> llvm-gcc-4.2 

我该如何解决这个问题?

+0

您是否试过将'/ usr/bin/gcc-4.2'符号链接到同一个二进制文件? 'cd/usr/bin && sudo ln -s llvm-gcc-4.2 gcc-4.2' – Tim 2013-02-15 00:24:06

回答

2

我认为问题在于,当您安装Xcode命令行工具时,gcc与sym-linked连接到llvm,并且llvm不能始终正确编译Ruby和gem。

如果您直接安装autoconf,automakegcc(或通过类似Homebrew的东西),则应该可以修复编译器错误。

+0

警告:确保你做了sudo,否则“brew install gcc”将全部失效。这适用于bundle:install。我现在无法做到“耙路”,我得到以下错误信息:您已经激活了耙10.0.3,但您的Gemfile需要耙0.9.2.2。使用bundle exec可以解决这个问题。 – EastsideDeveloper 2013-02-15 12:12:40

+0

bundle exec是否解决了这个问题?您也可以尝试更改您的Gemfile指定的rake版本。 – Andy 2013-02-15 14:22:49

+0

我不得不卸载rake,并将gem'rake'添加到我的gemfile中,然后重新运行bundle:install。这解决了问题。 – EastsideDeveloper 2013-02-15 16:02:12

0

问题是,您用来编译安装版本的红宝石的gcc作为xcode升级的一部分被删除。使用RVM重建你的ruby(你可能也想升级到最新版本)。一旦你这样做,你应该没有问题与原生扩展构建宝石。