[zeromq-dev] problems building on GNU+Linux

Martin Lucina mato at kotelna.sk
Fri Nov 5 12:51:17 CET 2010


Hi Marco,

marco.maggi-ipsu at poste.it said:
>   I am  new to 0MQ; I am  trying to build it  with the final
> purpose  of writing  a language  binding; my  platform  is a
> i686-pc-linux-gnu,  Slackware Linux, GCC  4.5.0.  I  want to
> signal a couple of problems.
> 
>   The README file  coming with "zeromq-2.0.10.tar.gz" refers
> to an INSTALL file which is not in the distribution, so I am
> trying to make the instructions at [1] be enough for me.

Yeah, sorry about the missing INSTALL file, this is a known problem.
INSTALL is just boilerplate docs for configure at the moment anyway, it'll
be fixed in the next release.

>   While running  "configure" the UUID  library is recognised
> but while compiling I get the error:
> 
> libtool: link: g++ -g -O2 -o .libs/local_lat local_lat.o  ../src/.libs/libzmq.so /usr/local/lib/libuuid.so -lpthread
> ../src/.libs/libzmq.so: undefined reference to `uuid_generate'
> ../src/.libs/libzmq.so: undefined reference to `uuid_unparse'
> collect2: ld returned 1 exit status
> 
>   I   have  installed   OSSP  UUID[2]   from   source  under
> "/usr/local"   and   it  comes   with   both  "uuid.h"   and
> "libuuid.so";  I gather  that this  is not  the  library 0MQ
> wants, but nevertheless the Autoconf test picks it up: it is

Right, so autoconf picked up a libuuid in /usr/local, but that's not the
one we want.

> not specific enough.  I  see in "configure.in" that the test
> looks  for  "main"  while  the  test for  Cygwin  looks  for
> "uuid_generate":  looking for this  function on  Linux, too,
> should work.

Good point.

If you change configure.in to look for "uuid_generate" instead of "main"
and re-run autogen.sh, then configure again, does it use the correct
libuuid?

>   I also have a  "uuid.h" and "libuuid.so" under "/usr"; the
> header file  attributes the copyright to  Theodore Ts'o, and
> on Slackware  it comes  in the util-linux-ng  package[3]; it
> looks like  this is  the needed library,  yes?  To  make 0MQ
> find it I have to compile with:
> 
>     $ ./configure \
>         CPPFLAGS=-I/usr/include \
>         LDFLAGS=-L/usr/lib
> 
> maybe this conflict can be documented somewhere?

This is indeed the correct library; can you try my suggestion above and let
me know if it actually works?

Alternatively, if you uninstall the OSSP libuuid (assuming you don't need
it for something else), does configure pick up the correct libuuid?

Thanks,

-mato



More information about the zeromq-dev mailing list