无法找到“libcrypto.so”引用的符号'tcgetattr'。 [英] Cannot locate symbol 'tcgetattr' referenced by "libcrypto.so"
问题描述
我正在为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屋!