ffmpeg移植到android各种错误

news/2024/7/10 21:03:10 标签: 移动开发, ffmpeg

基本步骤:添加各种android.mk文件和一个av,mk文件,修改Makefile文件,去掉libavutil/libm.h中的静态方法。编写config.sh文件,最后去掉生成的config.h中的一个restrict.

一、./config.sh:.....command not found

   这是由于不同的编码格式导致的,windows下的换行符与linux的不同,直接将其都装换为unix格式即可。如果还不行,最笨但是绝对可行的办法就是:在自己的编译环境中

一行一行的敲上去。

二、错误:

.../arm-linux-androideabi-gcc is unable to create an executable file.

C compiler test failed.

原因:网上千篇一律的说解决这个问题就是要在config.sh中加上临时目录export TMPDIR=e:/temp或输入export TMPDIR=e:/temp(temp必须存在),

但是这并不能解决所有人的问题,因为导致这个错误出现的原因是在是太多了。我建议大家出错了,就看一下config.log文件,这个文件里会有关于这个错误的

详细信息,可能是工程中的任何一个文件导致的错误,所以先了解一下自己出错的原因,更利于我们解决问题。

办法:在config.sh文件中,加上

export TMPDIR="D:/temp/android"
export NDK="D:/android/android-ndk-r8b"这两句话,PREBUILT=$NDK/toolchains...不变即可。

 

三、错误:

../libavcodec/dsputil.h:445: error: expected ';', ',' or ')' before 'v1'
../libavcodec/dsputil.h:448: error: expected ';' before 'void'

办法:在生成的config.h文件中有一句#define restict restrict,去掉一个restrict即可。

四、../samples/ffmpeg/obj/local/armeabi/libavutil.a(inverse.o):(.rodata+0x0):
multiple definition of `ff_inverse'
../samples/ffmpeg/obj/local/armeabi/libavcodec.a(inverse.o):(.rodata+0x0): first defined here
直接修改libavcodec/Makefile,把下面一行删掉:
OBJS-$(!CONFIG_SMALL)                  += inverse.o

 

转载于:https://www.cnblogs.com/wyqfighting/archive/2013/01/17/2865038.html


http://www.niftyadmin.cn/n/1637000.html

相关文章

LATM格式

转自http://blog.csdn.net/markman101/article/details/6616170/ LATM 的全称为“Low-overhead MPEG-4 Audio TransportMultiplex”(低开销音频传输复用), 是MPEG-4 AAC制定的一种高效率的码流传输方式,MPEG-2 TS 流也采用LATM …

关于C++实现的Singleton收集

http://www.cppblog.com/Fox/archive/2009/09/22/96898.html 本文同步自游戏人生 以前曾经讨论过Singleton的实现,这次在对照ACE和Boost代码的时候,又重新审视了一下二者对Singleton不同的实现。其间的差别也体现了不同的编程哲学:ACE的实现更…

wireshark抓取不到本地回路的数据包

转自http://blog.csdn.net/iriszx999/article/details/70154885 在测试时,要用wireshark抓取本地回路的测试包,结果发现怎么都抓不到127.0.0.1的tcp数据包,不管怎么看,都没有127.0.0.1的数据包.弄了半上午,发现如果是tcp客户端向别的IP通信wireshark都能正常截获,如…

html,css,javascript书写规范

规范源于经验和github上的文档整理。尽量做到简单易执行。 htmlcss 参考:https://github.com/styleguide/css javascript参考: https://github.com/airbnb/javascripthttps://github.com/styleguide/javascript/1.0转载于:https://www.cnblogs.com/my_fr…

虚拟地址到物理地址的映射

转自http://blog.csdn.net/sinat_16790541/article/details/42247907 虚拟地址和物理地址 CPU通过地址来访问内存中的单元,地址有虚拟地址和物理地址之分,如果CPU没有MMU(Memory Management Unit, 内存管理单元),或者有MMU但没有启用&#x…

查看修改mysql编码方式

MySQL的默认编码是Latin1,不支持中文,要支持中文需要把数据库的默认编码修改为gbk或者utf8。 1、需要以root用户身份登陆才可以查看数据库编码方式(以root用户身份登陆的命令为:>mysql -u root –p,之后两次输入root用户的密码)&#xff0…

浅谈对C#-lock()的理解

C#中的lock语句是怎么回事,有什么作用?C#中的lock语句将lock中的语句块视为临界区,让多线程访问临界区代码时,必须顺序访问。他的作用是在多线程环境下,确保临界区中的对象只被一个线程操作,防止出现对象被…

AppDomain类理解

AppDomain是CLR的运行单元,它可以加载Assembly、创建对象以及执行程序。 AppDomain是CLR实现代码隔离的基本机制。 每一个AppDomain可以单独运行、停止;每个AppDomain有自己默认的异常处理; 一个AppDomain的运行失败不会影响到其他的AppDoma…