mardi 19 mai 2015

could not install gem zmq on yosemite - rubyonrails

I have gem zmq installed properly on mac osx maverick. After upgrading to mac osx yosemite, It failed to install the gem with following error log:

Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.

/Users/apple/.rbenv/versions/1.9.3-p484/bin/ruby extconf.rb
checking for zmq.h... yes
checking for zmq_init() in -lzmq... yes
Cool, I found your zmq install...
creating Makefile

make
compiling rbzmq.c
rbzmq.c:968:7: error: use of undeclared identifier 'ZMQ_RECOVERY_IVL_MSEC'
        case ZMQ_RECOVERY_IVL_MSEC:
             ^
rbzmq.c:990:10: error: use of undeclared identifier 'ZMQ_HWM'
    case ZMQ_HWM:
         ^
rbzmq.c:991:10: error: use of undeclared identifier 'ZMQ_SWAP'
    case ZMQ_SWAP:
         ^
rbzmq.c:995:10: error: use of undeclared identifier 'ZMQ_MCAST_LOOP'
    case ZMQ_MCAST_LOOP:
         ^
rbzmq.c:1292:10: error: use of undeclared identifier 'ZMQ_HWM'
    case ZMQ_HWM:
         ^
rbzmq.c:1293:10: error: use of undeclared identifier 'ZMQ_SWAP'
    case ZMQ_SWAP:
         ^
rbzmq.c:1297:10: error: use of undeclared identifier 'ZMQ_MCAST_LOOP'
    case ZMQ_MCAST_LOOP:
         ^
rbzmq.c:1315:10: error: use of undeclared identifier 'ZMQ_RECOVERY_IVL_MSEC'
    case ZMQ_RECOVERY_IVL_MSEC:
         ^
rbzmq.c:1443:81: error: too few arguments to function call, expected 4, have 3
    send_args->rc = zmq_send(send_args->socket, send_args->msg, send_args->flags);
                    ~~~~~~~~                                                    ^
/usr/local/include/zmq.h:354:1: note: 'zmq_send' declared here
ZMQ_EXPORT int zmq_send (void *s, const void *buf, size_t len, int flags);
^
/usr/local/include/zmq.h:67:27: note: expanded from macro 'ZMQ_EXPORT'
#       define ZMQ_EXPORT __attribute__ ((visibility("default")))
                          ^
rbzmq.c:1517:38: error: too few arguments to function call, expected 4, have 3
        rc = zmq_send (s, &msg, flags);
             ~~~~~~~~                ^
/usr/local/include/zmq.h:354:1: note: 'zmq_send' declared here
ZMQ_EXPORT int zmq_send (void *s, const void *buf, size_t len, int flags);
^
/usr/local/include/zmq.h:67:27: note: expanded from macro 'ZMQ_EXPORT'
#       define ZMQ_EXPORT __attribute__ ((visibility("default")))
                          ^
rbzmq.c:1541:81: error: too few arguments to function call, expected 4, have 3
    recv_args->rc = zmq_recv(recv_args->socket, recv_args->msg, recv_args->flags);
                    ~~~~~~~~                                                    ^
/usr/local/include/zmq.h:356:1: note: 'zmq_recv' declared here
ZMQ_EXPORT int zmq_recv (void *s, void *buf, size_t len, int flags);
^
/usr/local/include/zmq.h:67:27: note: expanded from macro 'ZMQ_EXPORT'
#       define ZMQ_EXPORT __attribute__ ((visibility("default")))
                          ^
rbzmq.c:1602:38: error: too few arguments to function call, expected 4, have 3
        rc = zmq_recv (s, &msg, flags);
             ~~~~~~~~                ^
/usr/local/include/zmq.h:356:1: note: 'zmq_recv' declared here
ZMQ_EXPORT int zmq_recv (void *s, void *buf, size_t len, int flags);
^
/usr/local/include/zmq.h:67:27: note: expanded from macro 'ZMQ_EXPORT'
#       define ZMQ_EXPORT __attribute__ ((visibility("default")))
                          ^
rbzmq.c:1675:50: error: use of undeclared identifier 'ZMQ_HWM'
    rb_define_const (zmq_module, "HWM", INT2NUM (ZMQ_HWM));
                                                 ^
/Users/apple/.rbenv/versions/1.9.3-p484/include/ruby-1.9.1/ruby/ruby.h:973:35: note: expanded from macro 'INT2NUM'
# define INT2NUM(v) INT2FIX((int)(v))
                                  ^
/Users/apple/.rbenv/versions/1.9.3-p484/include/ruby-1.9.1/ruby/ruby.h:225:45: note: expanded from macro 'INT2FIX'
#define INT2FIX(i) ((VALUE)(((SIGNED_VALUE)(i))<<1 | FIXNUM_FLAG))
                                            ^
rbzmq.c:1676:51: error: use of undeclared identifier 'ZMQ_SWAP'
    rb_define_const (zmq_module, "SWAP", INT2NUM (ZMQ_SWAP));
                                                  ^
/Users/apple/.rbenv/versions/1.9.3-p484/include/ruby-1.9.1/ruby/ruby.h:973:35: note: expanded from macro 'INT2NUM'
# define INT2NUM(v) INT2FIX((int)(v))
                                  ^
/Users/apple/.rbenv/versions/1.9.3-p484/include/ruby-1.9.1/ruby/ruby.h:225:45: note: expanded from macro 'INT2FIX'
#define INT2FIX(i) ((VALUE)(((SIGNED_VALUE)(i))<<1 | FIXNUM_FLAG))
                                            ^
rbzmq.c:1683:57: error: use of undeclared identifier 'ZMQ_MCAST_LOOP'
    rb_define_const (zmq_module, "MCAST_LOOP", INT2NUM (ZMQ_MCAST_LOOP));
                                                        ^
/Users/apple/.rbenv/versions/1.9.3-p484/include/ruby-1.9.1/ruby/ruby.h:973:35: note: expanded from macro 'INT2NUM'
# define INT2NUM(v) INT2FIX((int)(v))
                                  ^
/Users/apple/.rbenv/versions/1.9.3-p484/include/ruby-1.9.1/ruby/ruby.h:225:45: note: expanded from macro 'INT2FIX'
#define INT2FIX(i) ((VALUE)(((SIGNED_VALUE)(i))<<1 | FIXNUM_FLAG))
                                            ^
rbzmq.c:1698:64: error: use of undeclared identifier 'ZMQ_RECOVERY_IVL_MSEC'
    rb_define_const (zmq_module, "RECOVERY_IVL_MSEC", INT2NUM (ZMQ_RECOVERY_IVL_MSEC));
                                                               ^
/Users/apple/.rbenv/versions/1.9.3-p484/include/ruby-1.9.1/ruby/ruby.h:973:35: note: expanded from macro 'INT2NUM'
# define INT2NUM(v) INT2FIX((int)(v))
                                  ^
/Users/apple/.rbenv/versions/1.9.3-p484/include/ruby-1.9.1/ruby/ruby.h:225:45: note: expanded from macro 'INT2FIX'
#define INT2FIX(i) ((VALUE)(((SIGNED_VALUE)(i))<<1 | FIXNUM_FLAG))
                                            ^
16 errors generated.
make: *** [rbzmq.o] Error 1


Gem files will remain installed in /Users/apple/.rbenv/versions/1.9.3-p484/lib/ruby/gems/1.9.1/gems/zmq-2.1.4 for inspection.
Results logged to /Users/apple/.rbenv/versions/1.9.3-p484/lib/ruby/gems/1.9.1/gems/zmq-2.1.4/./gem_make.out.

I did a brew install zmq successfully and i learned from the error log that bundler could find zmp as well.

Is there any dependencies I missed here ? Please help.

Aucun commentaire:

Enregistrer un commentaire