> Also note that getting the dlopen flags correct can be challenging. I use >> the following code (when needed) code because something that works on one >> platform does not work on another (from >> http://cryptopp.com/wiki/Linux#Note_for_Shared_Object_Callers): >> >> void* cryptlib = NULL; >> >> cryptlib = dlopen("libcryptopp.so", RTLD_GLOBAL); >> >> if(!cryptlib) >> cryptlib = dlopen("libcryptopp.so", RTLD_GLOBAL | RTLD_LAZY); >> >> if(!cryptlib) >> cryptlib = dlopen("libcrypto++.so", RTLD_GLOBAL); >> >> if(!cryptlib) >> cryptlib = dlopen("libcrypto++.so", RTLD_GLOBAL | RTLD_LAZY); >> >> if(!cryptlib) >> throw runtime_error("Failed to load crypto++ shared object"); >> >> ... >> >> dlclose(cryptlib); >> >> >> I think you figured it out for me, I need RTLD_GLOBAL in the dlopen() > qt-generated android activity to load the library so that crypto++ can > access it. Be default it is only specifying RTLD_LAZY >
It looks like Android added more choices for dlopen. See http://developer.android.com/about/versions/marshmallow/android-6.0-changes.html#behavior-runtime . Jeff -- -- You received this message because you are subscribed to the "Crypto++ Users" Google Group. To unsubscribe, send an email to [email protected]. More information about Crypto++ and this group is available at http://www.cryptopp.com. --- You received this message because you are subscribed to the Google Groups "Crypto++ Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
