我按照openssl wiki构建openssl静态库,我的构建环境如下:
的OpenSSL 1.0.2h
NDK:机器人-NDK-R12B
机器人-API:机器人-14
android_arch =拱形臂
首先,我使用md5来测试构建成功,没关系。但是当我使用其他一些函数时,会出现如下链接错误:
libcrypto.a(ui_openssl.o):ui_openssl.c:function read_string_inner: error: undefined reference to 'bsd_signal'
我搜索这个错误,发现在android版本小于或等于19,在signal.h(https://chromium.googlesource.com/android_tools/+/20ee6d20/ndk/platforms/android-19/arch-arm/usr/include/signal.h)中,有bsd_signal符号,但在android版本21或更高的signal.h中,bsd_signal是删除,所以我将android-api更改为21并重建了库,在Android版本高于或等于21时一切正常,但在早期版本中,它失败了。 我在ui_openssl.c(https://github.com/openssl/openssl/blob/master/crypto/ui/ui_openssl.c)
中找到了代码修改一些源代码会解决这个问题吗?
我对两点非常困惑: