posts - 36, comments - 30, trackbacks - 0, articles - 0

编译FFMPEG

Posted on 2007-12-06 17:59 vcommon 阅读(2830) 评论(0)  编辑 收藏 引用
1:
dllwrap -mno-cygwin --target=i386-mingw32 --def libavcodec.def -o libavcodec.dll libavcodec/allcodecs.o libavcodec/mem.o libavcodec/common.o libavcodec/utils.o libavcodec/mpegvideo.o libavcodec/h263.o libavcodec/dsputil.o libavcodec/msmpeg4.o libavcodec/mpeg12.o libavcodec/h263dec.o libavcodec/rv10.o libavcodec/jrevdct.o libavcodec/simple_idct.o libavcodec/my_utils.o libavcodec/i386/cputest.o libavcodec/i386/dsputil_mmx.o libavcodec/i386/mpegvideo_mmx.o libavcodec/i386/idct_mmx.o libavcodec/i386/motion_est_mmx.o libavcodec/i386/simple_idct_mmx.o  -lmsvcrt -lcrtdll -L/lib/mingw
libavcodec/i386/motion_est_mmx.o:motion_est_mmx.c.text+0x9f3): undefined reference to `_bone'
libavcodec/i386/motion_est_mmx.o:motion_est_mmx.c.text+0xd33): undefined reference to `_bone'
libavcodec/i386/motion_est_mmx.o:motion_est_mmx.c.text+0xdb3): undefined reference to `_bone'
libavcodec/i386/simple_idct_mmx.o:simple_idct_mmx.c:(.text+0x21): undefined reference to `_wm1010'
libavcodec/i386/simple_idct_mmx.o:simple_idct_mmx.c:(.text+0x11c): undefined reference to `_d40000'
collect2: ld returned 1 exit status
dllwrap: gcc exited with status 1
make: *** [libavcodec.dll] Error 1
Project : error PRJ0019: 工具从"正在执行生成文件项目操作"
生成日志保存在“file://c:\cygwin\usr\src\ffdshow\src\ffmpeg\Release\BuildLog.htm”中


解决方法:
将bone wm1010 d40000的static标识去掉即可通过.
应该2005的编译器的原因


2:cygwin生成的dll --libavcodec.dll


3:
编译FFDSHOW
生成ffdshow.ax加入graphedt的时候
av_getVersion crash.
将编译生成的libavcodec.dllcopy到本C:\mydocuments\ffdshow\src\ffmpeg下成功
然后在TffDecoder * pNewObject = new TffDecoder(punk, phr);中crash

发现会从注册表里的设置里边加载codec

4:编译最新的FFDSHOW:
报错:error: more than one input file specified

type `nasm -h' for help

Project : error PRJ0019: 工具从"正在执行自定义生成步骤"


没有明显原因.
结论:路径中带有空格,更换路径.

报错: mismatch in operand sizes
使用nasm-0.98.38-win32,编译成功.使用最新nasm2.0才出现.

成功.
只有注册用户登录后才能发表评论。