[zeromq-dev] Issue linking ZMQ static library into shared library for Android

Matthias Brzezinski Matthias.Brzezinski at gmx.de
Sun Mar 8 00:11:49 CET 2015


Hey,
actually I had some time trying out if the library works and I was wrong 
- it does not work. The library throws many undefined reference errors 
when I'm not using LOCAL_ALLOW_UNDEFINED_SYMBOLS := true
In the case I'm using it, my program will crash on startup with the error
"cannot locate symbol 
"_ZN6google8protobuf15UnknownFieldSet13ClearFallbackEv".
I'm just loading both static libraries - sodium and zmq - into my 
project like I normally do with libraries.

Probably someone has another Idea why zeromq does not work with the NDK.

With Regards,
Matthias

Am 06.03.2015 um 19:25 schrieb Matthias Brzezinski:
> Hey Joe,
> thank you for your answer.
> I've looked through your script and it helped me verifying that I did 
> not miss a flag, a step or something i was not considering yet.
> Generally it doesn't matter if I compile a static or a shared library 
> - The NDK uses its own linker to link the prebuilt libraries.
>
> Am 06.03.2015 um 18:17 schrieb Joe McIlvain:
>> Matthias,
>>
>> I don't usually compile them as static, but you may be able to get 
>> some ideas/help from using or looking at the scripts I added under 
>> `builds/qt-android`of the zeromq repository.  I use these to compile 
>> for use with Qt on android, but there's nothing really Qt-specific 
>> about them.  I only added them because the android scripts didn't 
>> work for me.  They didn't seem to be
> The syntax for the android makefiles are a bit different, but I used 
> the same flags as far I can see. Hence, I never worked with qt before.
> What exactly didn't work with the android scripts? Did you have 
> problems getting the NDK to work generally, or just the NDK in 
> combination with ZeroMQ? I hope for the first, because it would be a 
> mess if I wouldn't find a way to use ZeroMQ with native code and the 
> NDK where for example the protobuf library compiled on the first try.
>
> With regards,
> Matthias
>> maintained, but I didn't want to clobber something that someone out 
>> there might be relying on.
>>
>> I don't know a lot about the android toolchain because working with 
>> Qt hides a lot of the platform-specific stuff from me, but I learned 
>> just enough about the toolchain to make those scripts work and get 
>> them into the CI for the repository.
>>
>>
>> On Fri, Mar 6, 2015 at 6:30 AM, Matthias Brzezinski 
>> <Matthias.Brzezinski at gmx.de <mailto:Matthias.Brzezinski at gmx.de>> wrote:
>>
>>     Hey,
>>     I'm having issues linking ZeroMQ into my shared library for Android.
>>
>>     I followed the steps on http://zeromq.org/build:android to build
>>     the static library. I tried it with the recommended NDKr8 but
>>     also tried it with the NDK10d. I've build the static library for
>>     arm with the official ndk-toolchain.
>>     Afterwards I try to link thoose libraries into my shared library
>>     to compile a bunch of cpp files.
>>     I've successfully compiled and linked different static libraries
>>     into my projects so I'm pretty confused why the linker throws the
>>     Error when I work with ZeroMQ. I've omitted the other working
>>     libraries.
>>     My Android.mk:
>>     http://pastebin.com/N7gueqre
>>
>>     My Application.mk:
>>     http://pastebin.com/nNgCYM2F
>>
>>     In both code blocks I've ommited everything that is not necessary
>>     for solving this issue. The error message stays the same. I've
>>     tried to build the shared library under windows and later under
>>     debian and ubuntu. The error message is:
>>
>>     /tmp/android-ndk-r10d/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.9/../../../../arm-linux-androideabi/bin/ld:
>>     error: ./zmq/lib    /libzmq.a(libzmq_la-zmq.o): incompatible target
>>         collect2: error: ld returned 1 exit status
>>         make: *** [obj/local/armeabi/libzmqTest.so] Error 1
>>     (I guess 3 lines are not worth a pastebin)
>>
>>     I'm working on Windows 8.1 with Android Studio 1.1. I've compiled
>>     the libraries under Linux Mint 16, a up-to-date ubuntu system and
>>     an old debian server.
>>     I build zeromq3-x and zeromq4-x.
>>
>>     Any idea is welcome and appreciated.
>>
>>     If this is not the right place to ask such a question, please
>>     tell me where to ask it instead.
>>
>>     With regards,
>>     Matthias
>>
>>
>>     _______________________________________________
>>     zeromq-dev mailing list
>>     zeromq-dev at lists.zeromq.org <mailto:zeromq-dev at lists.zeromq.org>
>>     http://lists.zeromq.org/mailman/listinfo/zeromq-dev
>>
>>
>>
>>
>> _______________________________________________
>> zeromq-dev mailing list
>> zeromq-dev at lists.zeromq.org
>> http://lists.zeromq.org/mailman/listinfo/zeromq-dev
>
>
>
> _______________________________________________
> zeromq-dev mailing list
> zeromq-dev at lists.zeromq.org
> http://lists.zeromq.org/mailman/listinfo/zeromq-dev

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.zeromq.org/pipermail/zeromq-dev/attachments/20150308/0f2f82f6/attachment.htm>


More information about the zeromq-dev mailing list