[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
http://stackoverflow.com/questions/18787033/a-switch-jumping-in-unexpected-place/18810997#18810997),
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':
/home/laurent/Documents/WorkSpace/libzmq/tests/test_security_curve.cpp:57:
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
Cheers,
Laurent.
More information about the zeromq-dev
mailing list