我正在构建一个android共享库,问题是android似乎不支持共享库版本控制。 Android手机上的.so库似乎没有包含其名称中的版本号。
当我正在进行构建时(使用我自己的工具链进行的ndk r6),我正在创建的.so似乎是将依赖项添加到其他.so库中,并在最后添加了版本号。
我的问题是我可以建立我的.so,因为它的依赖性没有列出他们的版本号。
我可以通过展示我希望看到的内容来更好地解释。目前我的dll没有加载,当我做readelf时,我看到了这个:
$ arm-linux-androideabi-readelf.exe -d libthis.so
Dynamic section at offset 0x188fc contains 30 entries:
Tag Type Name/Value
0x00000001 (NEEDED) Shared library: [lib1.so.3]
0x00000001 (NEEDED) Shared library: [lib2.so.3]
0x00000001 (NEEDED) Shared library: [lib3.so.3]
0x00000001 (NEEDED) Shared library: [lib4.so.3]
0x00000001 (NEEDED) Shared library: [lib5.so.3]
0x00000001 (NEEDED) Shared library: [lib6.so.3]
0x00000001 (NEEDED) Shared library: [liblog.so]
0x0000000e (SONAME) Library soname: [libthis.so.3]
0x00000010 (SYMBOLIC) 0x0
我希望看到这个
$ arm-linux-androideabi-readelf.exe -d libthis.so
Dynamic section at offset 0x188fc contains 30 entries:
Tag Type Name/Value
0x00000001 (NEEDED) Shared library: [lib1.so]
0x00000001 (NEEDED) Shared library: [lib2.so]
0x00000001 (NEEDED) Shared library: [lib3.so]
0x00000001 (NEEDED) Shared library: [lib4.so]
0x00000001 (NEEDED) Shared library: [lib5.so]
0x00000001 (NEEDED) Shared library: [lib6.so]
0x00000001 (NEEDED) Shared library: [liblog.so]
0x0000000e (SONAME) Library soname: [libthis.so]
0x00000010 (SYMBOLIC) 0x0
答案 0 :(得分:0)
如果有人在这里下降,似乎我需要手动更改配置文件,以便变量soname_spec不引用任何版本信息。
可能有更好的方法,但这可行。