linux 交叉编译ffplay,交叉编译ffmpeg生成ffplay

交叉编译ffmpeg并生成ffplay

1.交叉编译SDL库

a. ./configure --prefix=/usr/local/sdl-arm --disable-video-qtopia --disable-video-dummy --disable-video-fbcon --disable-video-dga --disable-arts --disable-esd --disable-alsa --disable-cdrom --disable-video-x11 --disable-nasm --target=arm-linux --host=arm-linux --enable-video-fbcon --disable-video-directfb

b. make

c. make install

2.交叉编译ffmpeg

a. ./configure --enable-cross-compile --target-os=linux --cross-prefix=arm-linux- --cc=arm-linux-gcc --enable-shared --arch=arm --enable-gpl --prefix=/usr/local/ffmpeg-arm --enable-ffplay --extra-cflags=-I/usr/local/sdl-arm/include/SDL --extra-ldflags=-L/usr/local/sdl-arm/lib --extra-libs=-lSDL

注:由于configure后生成的config.mak文件中CONFIG_FFPLAY=yes,HAVE_SDL=yes等都是被注释掉的,所以需要手动修改config.mak文件,将CONFIG_FFPLAY=yes HAVE_SDL=yes的注释去掉,同时必须手动指定SDL的头文件,库路径,并且-lSDL来链接

需要生成debug 符号时增加--disable-optimizations --disable-mmx --disable-stripping

b.make

c.make install

--prefix=PEWFIX

'--prefix'是最常用的选项.制作出的'Makefile'会查看随此选项传递的参数,当一个包在安装时可以彻底的重新安置他的结构独立部分. 举一个例子,当安装一个包,例如说Emacs,下面的命令将会使Emacs Lisp file被安装到"/opt/gnu/share":

$ ./configure --prefix=/opt/gnu

--host=HOST

指定软件运行的系统平台.如果没有指定,将会运行`config.guess'来检测.

--target=GARGET

指定软件面向(target to)的系统平台.这主要在程序语言工具如编译器和汇编器上下文中起作用.如果没有指定,默认将使用'--host'选项的值.

--disable-FEATURE

一些软件包可以选择这个选项来提供为大型选项的编译时配置,例如使用Kerberos认证系统或者一个实验性的编译器最优配置.如果默认是提供这些特性,可以使用'--disable-FEATURE'来禁用它,这里'FEATURE'是特性的名字.例如:

$ ./configure --disable-gui

-enable-FEATURE[=ARG]

相反的,一些软件包可能提供了一些默认被禁止的特性,可以使用'--enable-FEATURE'来起用它.这里'FEATURE'是特性的名字.一个特性可能会接受一个可选的参数.例如:

$ ./configure --enable-buffers=128

`--enable-FEATURE=no'与上面提到的'--disable-FEATURE'是同义的.

--cross-prefix=PREFIX    为编译工具指定路径 | use PREFIX for compilation tools []

--cross-compile          假定使用了交叉编译 | assume a cross-compiler is used

--cc=CC                  指定使用何种C编译器(默认gcc)use C compiler CC [gcc]

--extra-cflags=ECFLAGS   添加ECFLAGS到CFLAGS | add ECFLAGS to CFLAGS []

--extra-ldflags=ELDFLAGS 添加ELDFLAGS到LDFLAGS(默认-Wl,--as-needed)| add ELDFLAGS to LDFLAGS [ -Wl,--as-needed]

--extra-libs=ELIBS       添加ELIBS | add ELIBS []

--arch=ARCH              选择机器架构(默认x86)select architecture  [x86]

但是:

交叉编译ffmpeg,要把x264加进来,首先configure:

#./configure --prefix=/usr/local/ --cross-compile --arch=libavcodec/armv4l/ --cross-prefix=/usr/local/arm/2.95.3/bin/arm-linux- --cc=gcc --enable-static --disable-ipv6 --enable-libx264 --enable-gpl --enable-pthreads --disable-ffserver --disable-ffplay --target-os=linux --disable-network --disable-opts

有错误,如:

ERROR: x264 not found 你在configure时把libx264库加上就可以了:--extra-libs=/usr/local/lib/ 此路径是你的x264的安装路径。

如果出现如下错误,

/usr/local/arm/2.95.3/bin/arm-linux-gcc is unable to create an executable file.

C compiler test failed.

会发现只要去掉--extra-libs=/usr/local/lib/后,这个错误就没了,但是有ERROR: x264 not found 那个错误,郁闷,怎么解决呢?

......

我又重新编译安装了一下x264,把它的prefix由--prefix=/usr/local改到交叉编译器的目录下,即--prefix=/usr/local /arm/2.95.3/arm-linux/后configure就能够通过了。

参照以上网上的方法:

这里的问题还是没有解决!暂且不添加x264库了!!!

阅读(1012) | 评论(0) | 转发(0) |

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值