【发布时间】:2016-07-22 13:12:57
【问题描述】:
在 OSX El Capitan 升级后尝试安装 thift gem:
$ gem install thrift
Building native extensions. This could take a while...
ERROR: Error installing thrift:
ERROR: Failed to build gem native extension.
/Users/foo/.rvm/rubies/ruby-2.1.4/bin/ruby -r ./siteconf20160402-32256-7dzqel.rb extconf.rb
checking for strlcpy() in string.h... yes
creating Makefile
make "DESTDIR=" clean
make "DESTDIR="
compiling binary_protocol_accelerated.c
compiling bytes.c
compiling compact_protocol.c
compact_protocol.c:442:41: error: shifting a negative signed value is undefined [-Werror,-Wshift-negative-value]
rb_exc_raise(get_protocol_exception(INT2FIX(-1), rb_str_new2(buf)));
^~~~~~~~~~~
编译失败 compact_protocol.c:442:41: 错误:移动负符号值未定义 [-Werror,-Wshift-negative-value]
【问题讨论】:
-
您接受新的 Xcode EULA 了吗?
-
你的 gcc 版本是多少?尝试使用 gcc 4.x。例如。
brew install gcc49,ln -s /usr/local/bin/gcc-49 /usr/local/bin/gcc。确保gcc --version返回 GNU 编译器,而不是 Apple LLVM,然后安装 gem:gem install thrift。 -
这不是重复的,我有同样的错误,我相信它与这里的错误描述有关:bugs.freebsd.org/bugzilla/show_bug.cgi?id=202660。 ruby 版本
-
@Anton:既然我已经重新打开了这个问题,请将您的解决方案/更新发布为一个充实的答案,而不是将其附加到问题中
-
@MichałKnapik 谢谢你的建议,但这对我在 El Capitan 10.11.4 上不起作用。