当前位置:  开发笔记 > 编程语言 > 正文

适用于Android的ffmpeg:霓虹灯构建具有文本重定位

如何解决《适用于Android的ffmpeg:霓虹灯构建具有文本重定位》经验,为你挑选了1个好方法。

嗨,我成功地构建了包括arm-v7a霓虹灯支持在内的ffmpeg库,但是当我尝试在棉花糖设备上运行这些库时,出现以下错误:

01-08 23:42:02.350: E/AndroidRuntime(10144): java.lang.UnsatisfiedLinkError:
 dlopen failed: /data/app/com.example.demo-1/lib/arm/libffmpeg-neon.so: has text relocations

当我使用非霓虹灯建筑时,它可以正常工作。

因此,我在Google上搜索了一下,发现这可能是相应C / C ++代码中的错误,但是另一方面,当使用NDK v。10e重建时,应该将其修复。这就是我所做的。但是我仍然得到这些文本重定位:

~/Projekte/AndroidFFmpeg$ /usr/Android/ndk/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/arm-linux-androideabi-readelf -a library/src/main/jniLibs/armeabi-v7a/libffmpeg-neon.so  | grep TEXTREL
 0x00000016 (TEXTREL)                    0x0
 0x0000001e (FLAGS)                      SYMBOLIC TEXTREL

这个问题似乎很相关,但没有帮助:

Android中的“ ffmpeg具有文本重定位”错误

libavcodec.so:具有文本重定位

我该如何解决?



1> mstorsjo..:

该问题应该已经修复(因为commit https://git.libav.org/?p=libav.git;a=commitdiff;h=f963f80399d,2014年 12月),因此请确保您构建了足够新的版本并且应该精细。

arm,aarch64和x86_64在没有文本重定位的情况下都可以正常工作,但是对于32位x86,您很难避免它。(对于x86,解决此问题的最简单方法是do --disable-asm,但这确实会造成相当多的性能损失。)

推荐阅读
mobiledu2402852413
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有