当前位置: 首页 > 面试题库 >

如何安装json gem-无法构建gem本机扩展(mac 10.10)

公西兴业
2023-03-14
问题内容

操作系统:Mac OS X 10.10.3 XCode:最新安装了命令行工具(6.3版)Rails:4.2.1版Ruby:2.2.1版

当我收到一条错误消息时,我试图为正在处理的项目生成路由(定期执行此操作),并建议我捆绑安装并捆绑执行。我这样做了,这一次,编译JSON
Gem(版本1.7.7)的过程中断了。

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

我尝试单独安装JSON版本1.7.7,但失败,并告诉我在登录时查找错误:

/Users/zwb/.rvm/rubies/ruby-2.2.1/bin/ruby -r ./siteconf20150411-36070-1t083xl.rb extconf.rb
creating Makefile

make "DESTDIR=" clean

make "DESTDIR="
compiling generator.c
In file included from generator.c:1:
./../fbuffer/fbuffer.h:175:47: error: too few arguments provided to function-like macro invocation
    VALUE result = rb_str_new(FBUFFER_PAIR(fb));
                                              ^
/Users/zwb/.rvm/rubies/ruby-2.2.1/include/ruby-2.2.0/ruby/intern.h:793:9: note: macro 'rb_str_new' defined here
#define rb_str_new(str, len) __extension__ (    \
        ^
In file included from generator.c:1:
./../fbuffer/fbuffer.h:175:11: warning: incompatible pointer to integer conversion initializing 'VALUE' (aka 'unsigned long') with an expression of type 'VALUE (const char *, long)' [-Wint-conversion]
    VALUE result = rb_str_new(FBUFFER_PAIR(fb));
          ^        ~~~~~~~~~~
1 warning and 1 error generated.
make: *** [generator.o] Error 1

make failed, exit code 2

问题答案:

但是,令人遗憾的是,JSON-1.7.7(以及最高1.8.1)与Ruby-2.2.x
不兼容。当您使用Ruby-2.2.1时,它对您不起作用。

有两个选项供您选择:

  1. 将您的jsongem 更新到1.8.2版本。- 最好
  2. 编辑ruby-2.2.1/ext/json/fbuffer/fbuffer.h文件并用替换有问题的代码VALUE result = rb_str_new(FBUFFER_PTR(fb), FBUFFER_LEN(fb));。看这里了解详细信息


 类似资料:
  • 我正在尝试将rails应用程序部署到我的ubuntu linux服务器上。我正在使用capistrano和bundler,当安装gems时,它会失败,并出现以下错误: 我运行的是ruby enterprise edition 1.8.7,如果不升级其他网站,我就无法升级ruby,所以现在这不是一个选项。我尝试安装ruby dev,但没有任何帮助(我不确定这是不是正确的事情)。

  • 问题内容: 我正在尝试将MySQL安装到最新版本,这是因为某些安装错误。我运行命令,并且收到以下信息: 构建本机扩展。这可能需要一段时间…错误:安装mysql时出错:错误:无法生成gem本机扩展。 /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby extconf.rb extconf.rb:4:警告:PATH模式

  • 问题内容: 尝试为Rails 安装gem 时遇到一些问题。当我尝试通过运行安装它时,或者出现以下错误: 安装mysql2时出错:错误:无法构建gem本机扩展。 如何解决此问题并成功安装? 问题答案: 在Ubuntu / Debian和其他使用aptitude的发行版上: 软件包已被淘汰,并由代替。这是我找到解决方案的地方。 如果上述命令由于找不到而无法使用,则以下内容就足够了: 在Red Hat

  • 我正在尝试安装rails,收到以下错误: 我见过类似的问题被问和回答,但似乎没有解决我的问题

  • 我正在尝试基于ruby: 3.0构建Docker映像。在Dockerfile中,运行“RUN bundle install”时,开始安装依赖项,直到显示错误: Gem::Ext::BuildError:错误:未能生成Gem本机扩展#10 34.20 34.20当前目录:/usr/local/bundle/gems/tiny_tds-2.1.5/ext/tiny-tds#10 34.2/usr/lo

  • 问题内容: 我正在使用Fedora 14,并且已安装并正在运行MySQL和MySQL服务器5.1.42。现在,我尝试以root用户身份执行此操作: 但是我得到这个错误: 怎么了 在已安装的Ruby 1.8.7中。以及最新的rubygems 1.3.7。 问题答案: 对于那些可能对接受的答案感到困惑的人,就像我一样,您还需要安装ruby标头[ ruby-devel ]。 保存我的皮革的文章在这里。