Thanks, I replaced assign by clear/append. But it still not works...something make me feel that I don't have any STD lib available :making a call to arm-linux-androideabi-ld libjzmq.so give me this : /home/xxx/libjzmq.so: undefined reference to `std::basic_ios<char, std::char_traits<char> >::init(std::basic_streambuf<char, std::char_traits<char> >*)'/home/xxx/libjzmq.so: undefined reference to `__gnu_cxx::__exchange_and_add(int volatile*, int)'/home/xxx/libjzmq.so: undefined reference to `std::_Rb_tree_decrement(std::_Rb_tree_node_base*)'/home/xxx/libjzmq.so: undefined reference to `std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::string const&)'/home/xxx/libjzmq.so: undefined reference to `std::string::compare(char const*) const'/home/xxx/libjzmq.so: undefined reference to `std::locale::locale()'/home/xxx/libjzmq.so: undefined reference to `__aeabi_uldivmod'/home/xxx/libjzmq.so: undefined reference to `std::string::find(char const*, unsigned int, unsigned int) const'/home/xxx/libjzmq.so: undefined reference to `std::string::append(char const*)'/home/xxx/libjzmq.so: undefined reference to `std::__throw_bad_alloc()'/home/xxx/libjzmq.so: undefined reference to `std::string::assign(std::string const&)'/home/xxx/libjzmq.so: undefined reference to `vtable for std::basic_stringstream<char, std::char_traits<char>, std::allocator<char> >'/home/xxx/libjzmq.so: undefined reference to `std::basic_string<char, std::char_traits<char>, std::allocator<char> >::~basic_string()'/home/xxx/libjzmq.so: undefined reference to `std::basic_stringstream<char, std::char_traits<char>, std::allocator<char> >::~basic_stringstream()'/home/xxx/libjzmq.so: undefined reference to `std::__throw_length_error(char const*)'/home/xxx/libjzmq.so: undefined reference to `std::_Rb_tree_increment(std::_Rb_tree_node_base const*)'/home/xxx/libjzmq.so: undefined reference to `VTT for std::basic_stringstream<char, std::char_traits<char>, std::allocator<char> >'/home/xxx/libjzmq.so: undefined reference to `__gnu_cxx::__atomic_add(int volatile*, int)'/home/xxx/libjzmq.so: undefined reference to `std::string::_Rep::_S_empty_rep_storage'/home/xxx/libjzmq.so: undefined reference to `std::ostream& std::ostream::_M_insert<unsigned long>(unsigned long)'/home/xxx/libjzmq.so: undefined reference to `std::ostream::operator<<(int)'/home/xxx/libjzmq.so: undefined reference to `std::ios_base::ios_base()'/home/xxx/libjzmq.so: undefined reference to `std::string::_M_leak()'/home/xxx/libjzmq.so: undefined reference to `std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, int)'/home/xxx/libjzmq.so: undefined reference to `std::string::_M_mutate(unsigned int, unsigned int, unsigned int)'/home/xxx/libjzmq.so: undefined reference to `std::locale::~locale()'/home/xxx/libjzmq.so: undefined reference to `std::string::clear()'/home/xxx/libjzmq.so: undefined reference to `std::__throw_logic_error(char const*)'/home/xxx/libjzmq.so: undefined reference to `std::_Rb_tree_insert_and_rebalance(bool, std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, std::_Rb_tree_node_base&)'/home/xxx/libjzmq.so: undefined reference to `std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(char const*, std::allocator<char> const&)'/home/xxx/libjzmq.so: undefined reference to `std::_Rb_tree_rebalance_for_erase(std::_Rb_tree_node_base*, std::_Rb_tree_node_base&)'/home/xxx/libjzmq.so: undefined reference to `std::string::_M_leak_hard()'/home/xxx/libjzmq.so: undefined reference to `vtable for __cxxabiv1::__vmi_class_type_info'/home/xxx/libjzmq.so: undefined reference to `std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::string const&, unsigned int, unsigned int)'/home/xxx/libjzmq.so: undefined reference to `vtable for std::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >'/home/xxx/libjzmq.so: undefined reference to `vtable for std::basic_streambuf<char, std::char_traits<char> >'/home/xxx/libjzmq.so: undefined reference to `std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(char const*, unsigned int, std::allocator<char> const&)'/home/xxx/libjzmq.so: undefined reference to `std::ios_base::~ios_base()'/home/xxx/libjzmq.so: undefined reference to `__aeabi_uidivmod'/home/xxx/libjzmq.so: undefined reference to `vtable for std::basic_ios<char, std::char_traits<char> >'/home/xxx/libjzmq.so: undefined reference to `std::basic_istream<char, std::char_traits<char> >::~basic_istream()'/home/xxx/libjzmq.so: undefined reference to `std::_Rb_tree_increment(std::_Rb_tree_node_base*)'/home/xxx/libjzmq.so: undefined reference to `operator delete(void*, std::nothrow_t const&)'/home/xxx/libjzmq.so: undefined reference to `std::string::_Rep::_S_create(unsigned int, unsigned int, std::allocator<char> const&)'/home/xxx/libjzmq.so: undefined reference to `std::__throw_out_of_range(char const*)'/home/xxx/libjzmq.so: undefined reference to `operator new(unsigned int, std::nothrow_t const&)'/home/xxx/libjzmq.so: undefined reference to `std::string::_Rep::_M_destroy(std::allocator<char> const&)'/home/xxx/libjzmq.so: undefined reference to `std::string::append(char const*, unsigned int)' I'll have a look to what is going on with my configuration. Best regards. Eric
--- En date de : Mer 18.7.12, Ron Elliott <[email protected]> a écrit : De: Ron Elliott <[email protected]> Objet: Re: [zeromq-dev] (no subject) À: "ZeroMQ development list" <[email protected]>, [email protected] Date: Mercredi 18 juillet 2012, 0h53 perhaps this is an option: http://www.crystax.net/en/android/ndk/7 On Jul 17, 2012 3:48 PM, "Victor Perron" <[email protected]> wrote: Same answer as before. I paste it down there. Hi, In that case it seems that you discovered something serious. I took a look at it, and indeed the assign() symbol from std::string class seems undefined. That would mean, Android does _not_ define such a function in its SDK. Now, the proper way to get around this is a patch to Zeromq 3.x. You'll have to fix those lines (my guess): ./src/ipc_listener.cpp:151: filename.assign(addr_); ./src/socket_base.cpp:331: options.last_endpoint.assign (addr_); ./src/socket_base.cpp:480: options.last_endpoint.assign (addr_); ./src/tcp_address.cpp:503: addr_str.assign (name_, delimiter - name_); ./src/tcp_address.cpp:504: mask_str.assign (delimiter + 1); ./src/tcp_address.cpp:511: addr_str.assign (name_); ... and try to compile again. If there are no other undefined symbols, that should work. That issue did not exist in ZeroMQ 2.2 though, that one didn't make an extensive use of std::string. Keep me updated, we'll see for a pull request when I'll be less busy ;) Best regards, I'll take a look for an acceptable patch tomorrow, if nobody shows up with a better suspect/solution of course ! On Wed, Jul 18, 2012 at 12:35 AM, Eric <[email protected]> wrote: Trying to use jzmq under android. I generated using zmq3.x procedure, having to change config.sub and config.guess files but generation is OK and match the scheme on http://www.zeromq.org/build:android. But I always get unsatisfiedlink error when loading library libjzmq (loadlibrary(jzmq)), whereas i'm able to load libzmq without any problem. I've seen other people asking the same question without answer. Searching for hours over the net, no idea, any help would be appreciated! Best regards. Eric _______________________________________________ zeromq-dev mailing list [email protected] http://lists.zeromq.org/mailman/listinfo/zeromq-dev -- Victor _______________________________________________ zeromq-dev mailing list [email protected] http://lists.zeromq.org/mailman/listinfo/zeromq-dev -----La pièce jointe associée suit----- _______________________________________________ zeromq-dev mailing list [email protected] http://lists.zeromq.org/mailman/listinfo/zeromq-dev
_______________________________________________ zeromq-dev mailing list [email protected] http://lists.zeromq.org/mailman/listinfo/zeromq-dev
