[zeromq-dev] my patch to avoid Z85_encode double definition does not work

l.alebarde at free.fr l.alebarde at free.fr
Sun Sep 15 16:59:35 CEST 2013

Hi all,

I use Eclipse CDT IDE to work. As autotools behave strangely for debugging (cf
I build libzmq with the default Eclipse CDT builder, based on make, and then the
debugger flow is correct.

But at first, Eclipse CDT make was ending with a "double declaration error" of
both Z85_encode, once in "options.cpp" and the other in
"test_security_curve.cpp". As the definition of this function is included in the
two files, I have deduced it wants only the declaration in the header.

So, I have splitted Z85_encode.hpp into itself and Z85_encode.cpp. I have
modified also src/makefile.am to add Z85_encode.cpp. I had also to include some
files because then make didn't find the definitions of strlen, size_t and
u_int8_t - but that's normal.

Ok, now, Eclipse CDT is happy, builds and runs correctly.

But the autotools version is not anymore happy. I get this error :

Making all in tests
make[1] : we enter the directory «
/home/laurent/Documents/WorkSpace/libzmq/tests »
  CXXLD    test_security_curve
test_security_curve.o: In function `zap_handler':
undefined reference to `Z85_encode(char*, unsigned char*, unsigned long)'
collect2: ld returned 1 exit status

This looks crasy since test_security_curve.cpp starts with :
#include "../src/z85_codec.hpp"

I have performed make distclean and complete rebuild process from ./autogen.sh,
but I still have this error and the Eclipse CDT make version is still happy.

I made several tries, including putting z85_codec.hpp on top in Makefile.am, but
without success.

Any help or suggestion is welcome please (I am a autotools &  make newbbie).
I have pushed it to https://github.com/lalebarde/libzmq



More information about the zeromq-dev mailing list