[Interest] Using std::string in android projects

Thiago Macieira thiago.macieira at intel.com
Tue Jan 5 14:45:14 CET 2016


On Monday 04 January 2016 23:11:09 Jason H wrote:
> Well there is a library that depends on the std::string class. I then use
> std::string to shuffle data into and out of the library, using
> QString/QByteArray as appropriate.

stlport, unlike libc++, is NOT able to be loaded into the same process as 
libstdc++. If you want to link to any code using stlport, you need to 
recompile Qt with stlport too.

My advice: instead, recompile this other library with libstdc++.

> It seems I may need to pass RTLD_GLOBAL to the dlopen() call. i.e.
> dlopen("stlport_shared", RTLD_GLOBAL| RTLD_LAZY) But qt is only assigning
> RTLD_LAZY. How can I alter this flag?

This question is irrelevant after what I said above. More importantly, you 
MUST NOT do this. Do not load stlport in a process that has libstdc++ or vice-
versa.

But for completeness:

RTLD_GLOBAL is QLibrary::ExportExternalSymbolsHint.

RTLD_LAZY is the default, as opposed to QLibrary::ResolveAllSymbolsHint which 
triggers RTLD_NOW.

-- 
Thiago Macieira - thiago.macieira (AT) intel.com
  Software Architect - Intel Open Source Technology Center







More information about the Interest mailing list