IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> ffmpeg-android dlopen failed: library “libclang_rt.ubsan_standalone-aarch64-android.so“ not found -> 正文阅读

[移动开发]ffmpeg-android dlopen failed: library “libclang_rt.ubsan_standalone-aarch64-android.so“ not found

NDK编译的ffmpeg 库,在android上使用,提示动态库错误:

15:08:54.276 18357 18357 E AndroidRuntime: java.lang.UnsatisfiedLinkError: dlopen failed: library "libclang_rt.ubsan_standalone-aarch64-android.so" not found

在配置编译ffmpeg的时候去掉配置:--toolchain=clang-usan
分析:
1.0关于这个toochain=clang-usan 是个什么配置,有何用?

首先在configure 脚本里面搜罗了一遍:
--toolchain=NAME ? ? ? ? set tool defaults according to NAME
? ? ? ? ? ? ? ? ? ? ? ? ? ?(gcc-asan, clang-asan, gcc-msan, clang-msan,
? ? ? ? ? ? ? ? ? ? ? ? ? ?gcc-tsan, clang-tsan, gcc-usan, clang-usan,
? ? ? ? ? ? ? ? ? ? ? ? ? ?valgrind-massif, valgrind-memcheck,
? ? ? ? ? ? ? ? ? ? ? ? ? ?msvc, icl, gcov, llvm-cov, hardened)
没什么有用的信息。接着百度下?libclang_rt.ubsan_standalone-aarch64-android.so 这个库,看有何说明,也没什么发现,看看这个库的名称,关键是 clang_rt.ubsan, 接着找 ubsan关键字,还是没什么发现,科学上网谷歌了一波,不得不说这些系统、软件、语言等玩意儿毕竟都是人家搞出来的,搜出来就是直接啊,直达官方说明:

https://clang.llvm.org/docs/UndefinedBehaviorSanitizer.html
?clang 的官方文档介绍,UBSan? 全称:UndefinedBehaviorSanitizer 顾名思义
就是一个调试用的工具,类似于gdb? 配合-g参数。在添加了这个配置之后编译出来的库体积非常大,比如我编译出来的ffmpeg? ?libavcodec.a 竟然达到了300M. 当然,我们去掉这个配置不使用该工具即可,只是debug工具的话,对功能没有影响,去掉该配置之后编译出来的库大小才正常

?2.0 解决方法

最直接的就是去掉对这个库的依赖,也就是去掉这个配置?--toolchain=**, 如果真的需要使用这个工具,可以让我们编译出来的库 编译阶段就打包进来这个库,在ndk编译环境中中可以找到这个库的

并且在android手机上也确实存在这个so库:
??只是 android对 应用层加载系统库有名单限制, 白名单在系统的:/etc/public.libraries.txt

如果有root权限,可以手动修改机器上的这个文件,添加上libclang_rt.ubsan_standalone-aarch64-android.so,这样就可以加载该库了。 关于android设备上的这个白名单文件,
?See https://android.googlesource.com/platform/ndk/+/master/docs/PlatformApis.md

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2021-07-28 07:56:17  更:2021-07-28 07:58:02 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/20 2:05:42-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码