Can't install thrift gem on OS X El Capitan

匿名 (未验证) 提交于 2019-12-03 01:25:01

问题:

Trying to install thift gem after OSX El Capitan upgrade:

    $ 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)));                                             ^~~~~~~~~~~

Compilation fails with compact_protocol.c:442:41: error: shifting a negative signed value is undefined [-Werror,-Wshift-negative-value]

回答1:

I have a solution for you! Hopefully.

Had this same problem the other day.

The problem is in the clang compiler that El Capitan comes bundled with. I'm sure it screws up other issues but this is one point that I had a lot of issues with.

Try running the following command and let me know how it goes!

gem install thrift -- --with-cppflags=\"-D_FORTIFY_SOURCE=0 -Wno-shift-negative-value\"


回答2:

You need to escape double quotes.

$ bundle config build.thrift "--with-cppflags=\"-D_FORTIFY_SOURCE=0 -Wno-shift-negative-value\""

$ cat ~/.bundle/config

BUNDLE_BUILD__THRIFT: --with-cppflags="-D_FORTIFY_SOURCE=0 -Wno-shift-negative-value"



回答3:

Try this

gem install thrift -v '0.9.0' -- --with-cppflags='-D_FORTIFY_SOURCE=0'


标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!