无法找到“libcrypto.so”引用的符号'tcgetattr'。 [英] Cannot locate symbol 'tcgetattr' referenced by "libcrypto.so"

查看:171
本文介绍了无法找到“libcrypto.so”引用的符号'tcgetattr'。的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在为Android应用程序构建一个帮助程序库,我需要为我正在使用的一些支持库提供完整的OpenSSL实现。我正在创建一个构建链并使用它编译 libssl libcrypto 但是在运行时我得到:

I'm building a helper library for Android apps and I need a full OpenSSL implementation for some of the support libraries I'm using. I'm creating a build chain and compiling libssl and libcrypto with it but at runtime I get:

java.lang.ExceptionInInitializerError
  Caused by: java.lang.UnsatisfiedLinkError: Cannot load library:
    soinfo_relocate(linker.cpp:975): cannot locate symbol "tcgetattr" referenced by "libcrypto.so.1.0.0"...

我猜我需要做些什么来帮助在运行时找到 tcgetattr

I'm guessing there's something I need to do to help locate tcgetattr at runtime?

推荐答案

Android运行时在API 19和API 21之间发生了重大变化.NDK库反映了这一变化,现在从系统库中导出了许多符号(例如 srand )。因此,设置 APP_PLATFORM (如果使用Android.mk)或 platformVersion (如果使用实验性插件)不高于应用支持的最低SDK版本非常重要。

Android runtime has significantly changed between API 19 and API 21. The NDK libraries reflect this change, and many symbols (e.g. srand) are now exported from the system libraries. Therefore is important to set APP_PLATFORM (if Android.mk is used) or platformVersion (if experimental plugin is used) not higher than the lowest SDK version that your app supports.

这篇关于无法找到“libcrypto.so”引用的符号'tcgetattr'。的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆