Android ndk dlopen失败:找不到符号";“信号”;

Android ndk dlopen失败:找不到符号";“信号”;,android-ndk,Android Ndk,我正在使用NDK开发一个Android应用程序 我已将OpenSSL构建为静态库libcrypto.a和libssl.a,并与我的自定义C代码链接 当我尝试在运行时加载库时,我得到: dlopen失败:找不到符号“信号” 你知道怎么解决这个问题吗 谢谢 更新: 这来自libcrypto: libcrypto.a: 00000000 *UND* 00000000 signal 在我的脑海中,我看到: libtest.so: NEEDED libc.s

我正在使用NDK开发一个Android应用程序

我已将OpenSSL构建为静态库libcrypto.a和libssl.a,并与我的自定义C代码链接

当我尝试在运行时加载库时,我得到: dlopen失败:找不到符号“信号”

你知道怎么解决这个问题吗

谢谢

更新:

这来自libcrypto:

libcrypto.a:

00000000         *UND*  00000000 signal
在我的脑海中,我看到: libtest.so:

NEEDED               libc.so
...
00040240 <signal@plt>:
    40240:       e28fc601        add     ip, pc, #1048576        ; 0x100000
    40244:       e28cca80        add     ip, ip, #128, 20        ; 0x80000
    40248:       e5bcfd64        ldr     pc, [ip, #3428]!        ; 0xd64
需要libc.so
...
00040240 :
40240:e28fc601添加ip,pc,#1048576;0x100000
40244:e28cca80增加ip,ip,#128,20;0x80000
40248:e5bcfd64 ldr pc,[ip,#3428];0xd64

那它为什么抱怨“信号”?

你说你在静态库中链接?你不能将dlopen与静态库一起使用…我用代码链接了静态库并创建了一个动态库。所以。这就是我加载的。使用ndk objdump检查tbe.so,并找出(可能通过递归grep)该符号应该来自何处。如何将do与静态库链接?你能发布你的Android.mk吗?发现了问题。我当时使用的是新的ndk64-r10,当然不是我的32位手机。。。我回到了r9(32位),一切正常。