[Development] Android missing SONAME in lib's causes

Simon Lees simon.lees at codan.com.au
Fri Jul 26 04:05:06 CEST 2013


On 07/26/2013 12:07 AM, BogDan wrote:
>>>    This provides a improvement for me but it is not a complete solution, on
>>>    android we load libQt5xxx.so my solution as it was still tried to load
>>>    libQt5xxx.so.5 which doesn't exist as libraries are not symlinked on
>>>    android like they are on Linux and only libQt5xxx.so is present.
>> Then perhaps this is the reason that the variable is simply cleared on
>> Android. qmake should probably generate the SONAME without the version on
>> android?
>>
>> Ossi, is that possible?
>>
>> Thanks,
>>
> Hello,
>
> If you are going to roll it back https://codereview.qt-project.org/#change,61330
> a few things will stop to work immediately:
>   - android qt creator plugin.
>   - no qt apps will be movable to sdcard (most of the sdcards are fat formated, and it can not have symlinks).
>   - Ministro needs lots of changes to support symlinks, this is the reason why I choose not to use SONAME.
>
> There are two ways to have a Qt application on Android, one is to use Ministro to get the libs, and the second one is to bundle Qt libs into the APK. For none of them you don't need to use SONAME.
> Personally, I see no reason why should SONAME be used for Android ...
>
> Thanks,
> BogDan.
>
> P.S. Sorry for slow reply, I didn't see the message until now.
> .
>
Hi,
The only reason for it is to fix cmake building. From my testing yes 
using the normal method to set the SONAME to be libQt5Core.so.5 does 
break everything but manually setting the SONAME to be libQt5Core.so 
works, at least for me this is because the java wrapper has already 
loaded libQt5.core.so before my shared library is loaded and as they 
have the same name the library is not re loaded.

The only other solution is to patch cmake so it doesn't require a SONAME 
or so that a SONAME can be manually provided.

Cheers

Simon



More information about the Development mailing list