Skip to content

Instantly share code, notes, and snippets.

@Industrial
Created June 26, 2020 09:09
Show Gist options
  • Save Industrial/6a0dd0d494f192c204b2f331cfa4e523 to your computer and use it in GitHub Desktop.
Save Industrial/6a0dd0d494f192c204b2f331cfa4e523 to your computer and use it in GitHub Desktop.
$ sudo gem install zmq
Building native extensions. This could take a while...
ERROR: Error installing zmq:
ERROR: Failed to build gem native extension.
current directory: /var/lib/gems/2.7.0/gems/zmq-2.1.4
/usr/bin/ruby2.7 -I /usr/lib/ruby/2.7.0 -r ./siteconf20200626-9323-1e3aze8.rb extconf.rb
checking for zmq.h... yes
checking for zmq_init() in -lzmq... yes
Cool, I found your zmq install...
creating Makefile
current directory: /var/lib/gems/2.7.0/gems/zmq-2.1.4
make "DESTDIR=" clean
current directory: /var/lib/gems/2.7.0/gems/zmq-2.1.4
make "DESTDIR="
compiling rbzmq.c
rbzmq.c: In function ‘context_alloc’:
rbzmq.c:105:5: warning: ‘rb_data_object_alloc’ is deprecated: by rb_data_object_wrap [-Wdeprecated-declarations]
105 | return rb_data_object_alloc (class_, NULL, 0, context_free);
| ^~~~~~
In file included from /usr/include/ruby-2.7.0/ruby.h:33,
from rbzmq.c:22:
/usr/include/ruby-2.7.0/ruby/ruby.h:1454:1: note: declared here
1454 | rb_data_object_alloc(VALUE klass, void *data, RUBY_DATA_FUNC dmark, RUBY_DATA_FUNC dfree)
| ^~~~~~~~~~~~~~~~~~~~
rbzmq.c: In function ‘internal_select’:
rbzmq.c:324:9: warning: implicit declaration of function ‘rb_thread_blocking_region’ [-Wimplicit-function-declaration]
324 | rb_thread_blocking_region (zmq_poll_blocking, (void*)&poll_args, NULL, NULL);
| ^~~~~~~~~~~~~~~~~~~~~~~~~
rbzmq.c: In function ‘socket_getsockopt’:
rbzmq.c:968:7: error: ‘ZMQ_RECOVERY_IVL_MSEC’ undeclared (first use in this function); did you mean ‘ZMQ_RECOVERY_IVL’?
968 | case ZMQ_RECOVERY_IVL_MSEC:
| ^~~~~~~~~~~~~~~~~~~~~
| ZMQ_RECOVERY_IVL
rbzmq.c:968:7: note: each undeclared identifier is reported only once for each function it appears in
rbzmq.c:990:10: error: ‘ZMQ_HWM’ undeclared (first use in this function)
990 | case ZMQ_HWM:
| ^~~~~~~
rbzmq.c:991:10: error: ‘ZMQ_SWAP’ undeclared (first use in this function); did you mean ‘ZMQ_GSSAPI’?
991 | case ZMQ_SWAP:
| ^~~~~~~~
| ZMQ_GSSAPI
rbzmq.c:995:10: error: ‘ZMQ_MCAST_LOOP’ undeclared (first use in this function)
995 | case ZMQ_MCAST_LOOP:
| ^~~~~~~~~~~~~~
rbzmq.c: In function ‘socket_setsockopt’:
rbzmq.c:1292:10: error: ‘ZMQ_HWM’ undeclared (first use in this function)
1292 | case ZMQ_HWM:
| ^~~~~~~
rbzmq.c:1293:10: error: ‘ZMQ_SWAP’ undeclared (first use in this function); did you mean ‘ZMQ_GSSAPI’?
1293 | case ZMQ_SWAP:
| ^~~~~~~~
| ZMQ_GSSAPI
rbzmq.c:1297:10: error: ‘ZMQ_MCAST_LOOP’ undeclared (first use in this function)
1297 | case ZMQ_MCAST_LOOP:
| ^~~~~~~~~~~~~~
rbzmq.c:1315:10: error: ‘ZMQ_RECOVERY_IVL_MSEC’ undeclared (first use in this function); did you mean ‘ZMQ_RECOVERY_IVL’?
1315 | case ZMQ_RECOVERY_IVL_MSEC:
| ^~~~~~~~~~~~~~~~~~~~~
| ZMQ_RECOVERY_IVL
rbzmq.c: In function ‘zmq_send_blocking’:
rbzmq.c:1443:21: error: too few arguments to function ‘zmq_send’
1443 | send_args->rc = zmq_send(send_args->socket, send_args->msg, send_args->flags);
| ^~~~~~~~
In file included from rbzmq.c:28:
/usr/include/zmq.h:489:16: note: declared here
489 | ZMQ_EXPORT int zmq_send (void *s_, const void *buf_, size_t len_, int flags_);
| ^~~~~~~~
rbzmq.c: In function ‘socket_send’:
rbzmq.c:1517:14: error: too few arguments to function ‘zmq_send’
1517 | rc = zmq_send (s, &msg, flags);
| ^~~~~~~~
In file included from rbzmq.c:28:
/usr/include/zmq.h:489:16: note: declared here
489 | ZMQ_EXPORT int zmq_send (void *s_, const void *buf_, size_t len_, int flags_);
| ^~~~~~~~
rbzmq.c: In function ‘zmq_recv_blocking’:
rbzmq.c:1541:21: error: too few arguments to function ‘zmq_recv’
1541 | recv_args->rc = zmq_recv(recv_args->socket, recv_args->msg, recv_args->flags);
| ^~~~~~~~
In file included from rbzmq.c:28:
/usr/include/zmq.h:492:16: note: declared here
492 | ZMQ_EXPORT int zmq_recv (void *s_, void *buf_, size_t len_, int flags_);
| ^~~~~~~~
rbzmq.c: In function ‘socket_recv’:
rbzmq.c:1602:14: error: too few arguments to function ‘zmq_recv’
1602 | rc = zmq_recv (s, &msg, flags);
| ^~~~~~~~
In file included from rbzmq.c:28:
/usr/include/zmq.h:492:16: note: declared here
492 | ZMQ_EXPORT int zmq_recv (void *s_, void *buf_, size_t len_, int flags_);
| ^~~~~~~~
In file included from /usr/include/ruby-2.7.0/ruby.h:33,
from rbzmq.c:22:
rbzmq.c: In function ‘Init_zmq’:
rbzmq.c:1675:50: error: ‘ZMQ_HWM’ undeclared (first use in this function)
1675 | rb_define_const (zmq_module, "HWM", INT2NUM (ZMQ_HWM));
| ^~~~~~~
/usr/include/ruby-2.7.0/ruby/ruby.h:262:33: note: in definition of macro ‘RB_INT2FIX’
262 | #define RB_INT2FIX(i) (((VALUE)(i))<<1 | RUBY_FIXNUM_FLAG)
| ^
/usr/include/ruby-2.7.0/ruby/ruby.h:1609:20: note: in expansion of macro ‘RB_INT2NUM’
1609 | #define INT2NUM(x) RB_INT2NUM(x)
| ^~~~~~~~~~
rbzmq.c:1675:41: note: in expansion of macro ‘INT2NUM’
1675 | rb_define_const (zmq_module, "HWM", INT2NUM (ZMQ_HWM));
| ^~~~~~~
rbzmq.c:1676:51: error: ‘ZMQ_SWAP’ undeclared (first use in this function); did you mean ‘ZMQ_GSSAPI’?
1676 | rb_define_const (zmq_module, "SWAP", INT2NUM (ZMQ_SWAP));
| ^~~~~~~~
/usr/include/ruby-2.7.0/ruby/ruby.h:262:33: note: in definition of macro ‘RB_INT2FIX’
262 | #define RB_INT2FIX(i) (((VALUE)(i))<<1 | RUBY_FIXNUM_FLAG)
| ^
/usr/include/ruby-2.7.0/ruby/ruby.h:1609:20: note: in expansion of macro ‘RB_INT2NUM’
1609 | #define INT2NUM(x) RB_INT2NUM(x)
| ^~~~~~~~~~
rbzmq.c:1676:42: note: in expansion of macro ‘INT2NUM’
1676 | rb_define_const (zmq_module, "SWAP", INT2NUM (ZMQ_SWAP));
| ^~~~~~~
rbzmq.c:1683:57: error: ‘ZMQ_MCAST_LOOP’ undeclared (first use in this function)
1683 | rb_define_const (zmq_module, "MCAST_LOOP", INT2NUM (ZMQ_MCAST_LOOP));
| ^~~~~~~~~~~~~~
/usr/include/ruby-2.7.0/ruby/ruby.h:262:33: note: in definition of macro ‘RB_INT2FIX’
262 | #define RB_INT2FIX(i) (((VALUE)(i))<<1 | RUBY_FIXNUM_FLAG)
| ^
/usr/include/ruby-2.7.0/ruby/ruby.h:1609:20: note: in expansion of macro ‘RB_INT2NUM’
1609 | #define INT2NUM(x) RB_INT2NUM(x)
| ^~~~~~~~~~
rbzmq.c:1683:48: note: in expansion of macro ‘INT2NUM’
1683 | rb_define_const (zmq_module, "MCAST_LOOP", INT2NUM (ZMQ_MCAST_LOOP));
| ^~~~~~~
rbzmq.c:1698:64: error: ‘ZMQ_RECOVERY_IVL_MSEC’ undeclared (first use in this function); did you mean ‘ZMQ_RECOVERY_IVL’?
1698 | rb_define_const (zmq_module, "RECOVERY_IVL_MSEC", INT2NUM (ZMQ_RECOVERY_IVL_MSEC));
| ^~~~~~~~~~~~~~~~~~~~~
/usr/include/ruby-2.7.0/ruby/ruby.h:262:33: note: in definition of macro ‘RB_INT2FIX’
262 | #define RB_INT2FIX(i) (((VALUE)(i))<<1 | RUBY_FIXNUM_FLAG)
| ^
/usr/include/ruby-2.7.0/ruby/ruby.h:1609:20: note: in expansion of macro ‘RB_INT2NUM’
1609 | #define INT2NUM(x) RB_INT2NUM(x)
| ^~~~~~~~~~
rbzmq.c:1698:55: note: in expansion of macro ‘INT2NUM’
1698 | rb_define_const (zmq_module, "RECOVERY_IVL_MSEC", INT2NUM (ZMQ_RECOVERY_IVL_MSEC));
| ^~~~~~~
make: *** [Makefile:245: rbzmq.o] Error 1
make failed, exit code 2
Gem files will remain installed in /var/lib/gems/2.7.0/gems/zmq-2.1.4 for inspection.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment