ffmpeg、jrtp、SDL的交叉编译

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

ffmpeg、jrtp、SDL的交叉编译

/weili8607/blog/item/b8c30a3c1ad80308baa16777.html

2009-05-26 10:33

因为需要,重新使用最新的交叉编译器arm-linux-gcc 4.3.2编译了所需要的SDL、ffmpeg、rtp库。其他交叉编译器过程类似,可能遇到不同的问题,视情况解决。

一、SDL的编译

SDL-1.2.13。

./configure --prefix=/weili/SDL --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

make

make install

看情况改变prefix目录和各种选项。make install之后便在prefix目录下生成所需的动态库和include头文件等等。

二、jrtp的编译

编译rtp库要先编译jthread库,然后在编译jrtp库。我使用的是jthread-1.2.1.tar.gz jrtplib-3.7.1.tar.gz。

1. 进入jthread-1.

2.1

./configure -host=arm-linux -prefix=/weili/jthread/

make

make install

这样jthread库就安装在了/weili/jthread/lib下面了

libjthread.so

2.进入jrtplib-

3.7.1

./configure --host=arm-linux -prefix=/weili/jrtp/

-with-jthread-includes=/weili/jthread/include/jthread/

CPPFLAGS=-I/weili/jthread/include/jthread

LDFLAGS=-L/weili/jthread/lib/

make

make install

我编译的时候出现mecpy在rtppacket.cpp和rtcpcompoundpacketbuilder.cpp 未定义的错误,然后在这两个.cpp头中加入#include 就可以了。

最后在/weili/jrtp/lib中就生成了需要的libjrtp库。

三、ffmpeg的编译

一开始我使用了ffmpeg-0.4.9-p2*******,结果出现错误In file included from mathematics.c:24:

common.h:619: error: static declaration of 'lrintf' follows non-static declaration

make[1]: *** [mathematics.o] Error 1

make[1]: Leaving directory `/weili/ffmpeg-0.4.9-p2*******/libavutil'

make: *** [lib] Error 2,不知道为什么,然后就换用ffmpeg_src_20071007.rar了。

首先下载解压后configure,

./configure --prefix=/weili/ffmpeg/ --enable-shared --cross-compile

--cc=arm-linux-gcc --arch=arm --enable-gpl --disable-strip --disable-network

--disable-ipv6 --disable-vhook --disable-mpegaudio-hp --enable-pthreads

--enable-small --disable-parsers --disable-debug --disable-armv5te --disable-armv6

执行时可能出现bash: ./configure: /bin/sh: bad interpreter: No such file or directory

原因是那个configure是在windows下写的,所以脚本就不能运行了。解决办法:把windows 下的configure转换成Linux下的,执行命令dos2unix configure 如果没有dos2unix命令就安装个,很简单,下一个dos2unix-3.1.tar装上就行了。

因为我没用到x264就没enable,注意如果需要x264要首先安装x264库。

然后make。我中间出现一些错误。

armv4l/dsputil_arm_s.S:79: Error: selected processor does not support `pld[r1]'

解决:PLD这个指令,只有ARM5以上才支持,而此处,我的配置是arm922T,属于arm4,

不支持这个指令,可以直接忽略它。所以,用下面这个方法,手动添加通过宏定义判断,就可以避开此问题了:也就是,修改dsputil_arm_s.S,在前面添加上:

#ifndef HAVE_PLD

.macro pld reg

.endm

#endif

记得第一次编译的时候还出现其它错误,经过修改才好使,不过后来再编译就没什么错误了。直接make就通过了,最后make install,之后再

/weili/ffmpeg/下就生成了需要的ffmpeg库。

但最后应用,发现mpeg4的解码器不能用,其它的都能用,不知道什么原因。所以改用了其它解码器来应用,可以。//后又经测试,可以用mpeg4。

/******************************若要转载,请注明出处

***********************************/

相关文档
最新文档