分类: LINUX
2009-04-21 15:27:40
移植FFMPEG到Davinc DM644x ARM上碰到的问题:
FFMPEG version---ffmpeg-0.5
Cross-compiler --- TI arm_v5t_le-gcc
进入FFMPEG源码目录,
./configure --prefix=/project/dengjj/ffmpeg/arm_install --cross-prefix=arm_v5t_le- --arch=arm --disable-ffserver -- disable-ffplay --disable-shared
make
1. 编译到arm/dsputil_vfp.S报错
arm/dsputil_vfp.S:46: Error: bad instruction `vpush {d8-d15}'
arm/dsputil_vfp.S:52: Error: bad instruction `vldmia r3!,{s0-s3}'
arm/dsputil_vfp.S:53: Error: bad instruction `vldmia r1!,{s8-s11}'
arm/dsputil_vfp.S:54: Error: bad instruction `vldmia r3!,{s4-s7}'
arm/dsputil_vfp.S:55: Error: bad instruction `vldmia r1!,{s12-s15}'
arm/dsputil_vfp.S:56: Error: bad instruction `vmul.f32 s8,s0,s8'
arm/dsputil_vfp.S:59: Error: bad instruction `vmul.f32 s12,s4,s12'
arm/dsputil_vfp.S:60: Error: bad instruction `vldmiage r3!,{s16-s19}'
arm/dsputil_vfp.S:61: Error: bad instruction `vldmiage r1!,{s24-s27}'
arm/dsputil_vfp.S:62: Error: bad instruction `vldmiage r3!,{s20-s23}'
arm/dsputil_vfp.S:63: Error: bad instruction `vldmiage r1!,{s28-s31}'
arm/dsputil_vfp.S:64: Error: bad instruction `vmulge.f32 s24,s16,s24'
arm/dsputil_vfp.S:65: Error: bad instruction `vstmia r0!,{s8-s11}'
arm/dsputil_vfp.S:66: Error: bad instruction `vstmia r0!,{s12-s15}'
arm/dsputil_vfp.S:67: Error: bad instruction `vmulge.f32 s28,s20,s28'
arm/dsputil_vfp.S:68: Error: bad instruction `vldmiagt r3!,{s0-s3}'
arm/dsputil_vfp.S:69: Error: bad instruction `vldmiagt r1!,{s8-s11}'
arm/dsputil_vfp.S:70: Error: bad instruction `vldmiagt r3!,{s4-s7}'
arm/dsputil_vfp.S:71: Error: bad instruction `vldmiagt r1!,{s12-s15}'
arm/dsputil_vfp.S:72: Error: bad instruction `vmulge.f32 s8,s0,s8'
arm/dsputil_vfp.S:73: Error: bad instruction `vstmiage r0!,{s24-s27}'
arm/dsputil_vfp.S:74: Error: bad instruction `vstmiage r0!,{s28-s31}'
arm/dsputil_vfp.S:79: Error: bad instruction `vpop {d8-d15}'
arm/dsputil_vfp.S:90: Error: bad instruction `vpush {d8-d15}'
使用TI提供的交叉编译工具可以编译通过。自己做的交叉编译工具有问题。
2. ffmpeg运行所需要的库文件:
arm_v5t_le-ldd bin/ffmpeg
libz.so.1 => /project/tool/montavista/pro/devkit/arm/v5t_le/target/usr/lib/libz.so.1 (0xdead1000)
libbz2.so.1.0 => /project/tool/montavista/pro/devkit/arm/v5t_le/target/usr/lib/libbz2.so.1.0 (0xdead2000)
libm.so.6 => /project/tool/montavista/pro/devkit/arm/v5t_le/target/lib/libm.so.6 (0xdead3000)
libdl.so.2 => /project/tool/montavista/pro/devkit/arm/v5t_le/target/lib/libdl.so.2 (0xdead4000)
libgcc_s.so.1 => /project/tool/montavista/pro/devkit/arm/v5t_le/target/lib/libgcc_s.so.1 (0xdead5000)
libc.so.6 => /project/tool/montavista/pro/devkit/arm/v5t_le/target/lib/libc.so.6 (0xdead6000)
/lib/ld-linux.so.3 => /project/tool/montavista/pro/devkit/arm/v5t_le/target/lib/ld-linux.so.3 (0xdead7000)
chinaunix网友2009-05-09 00:56:05
我编译的时候遇到了如下的错误,请问大虾知道是什么原因吗? libavcodec/arm/dsputil_arm_s.S:0: warning: switch -mcpu=arm926ejs conflicts with -march= switch libavcodec/arm/dsputil_arm_s.S: Assembler messages: libavcodec/arm/dsputil_arm_s.S:25: Error: unknown pseudo-op: `.eabi_attribute' libavcodec/arm/dsputil_arm_s.S:641: Error: bad instruction `push {r4-r10}' libavcodec/arm/dsputil_arm_s.S:724: Error: bad instruction `pop {r4-r10}' make[3]: *** [libavcodec/arm/dsputil_arm_s.o] 错误 1 谢谢