Qt5.2 androiddeployqt openssl-library-versioning
-
Hi,
I compiled openssl ( 1.0.1e ) as explained in http://qt-project.org/doc/qt-5/opensslsupport.html
This produces symlinks called libssl.so and libcrypto.so which both point to libssl.so.1.0.0 and libcrypto.so.1.0.0So far everythings fine, but I cannot properly deploy them into the apk via ANDROID_EXTRA_LIBS
If I add libcrypto.so and libssl.so, the symlinks will be resolved and the *.so.1.0.0 files will be copied and renamed to *.so - However, the program will crash as it expects to find *.so.1.0.0
If I instead add *.so.1.0.0 to ANDROID_EXTRA_LIBS, it will return the error The file name of external library [...]/libcrypto.so.1.0.0 must begin with "lib" and end with the suffix ".so".What am I doing wrong ? Thanks
-
I ran across the same problem when trying to use libopus which I had compiled in the same way.
The problem is that Android does not support versioned libraries and as you have discovered just renaming the file is not enough. I fixed it by using a hex editor to hack references to the right thing and this has worked but a bit nasty.
I raised a bug report for this issue but have since realised it is Android's fault not Qt's. I have documented in a comment some of the possible workarounds which may be helpful for your problem.
"Bug report":https://bugreports.qt-project.org/browse/QTCREATORBUG-11237#comment-227897