对大家可能有帮助的零碎的记录:
.a 与 .lib 的区别,如何通用:http://www.chinavideo.org/archiver/?tid-2934.html
官方编译 windows 下的教程:http://www.ffmpeg.org/platform.html
mingw32 编译器:http://www.drangon.org/mingw/
基于 Ubuntu 交叉编译 FFmpeg Windows SDK:http://www.cnblogs.com/haibindev/archive/2011/12/01/2270126.html
MinGW下编译ffmpeg静态库给Visual C++使用(修改版):http://www.tuicool.com/articles/EvieYb
.lib 转 .a:http://blog.csdn.net/lzhlzz/article/details/6096931
.dll 转 .lib(静态库,不是符号表):http://blog.163.com/aiding_001/blog/static/22908192009885771/
请参考:http://blog.csdn.net/wangjia184/article/details/7931164,编译即可
请参考:官网或者是 http://www.cnblogs.com/xylc/p/3683203.html,编译即可
声明:由于公司网络不能登录 SourceForge 和 google 导致很多工具不能下载(我家里可以:)),因此我把工具已经全部安装到公司里面了。
一、材料:
1.MinGW 编译器 + msys,版本 4.8.1 或以上,直接用 MinGW 官网上的自动下载器安装;
2.C99-to-C89 Converter & Wrapper,从官网下;
3.yasm for Win32,官网……
4.VS2008 以上,最好是 VS2010
5.ffmpeg,官网 Git 下载,恢复成你要用的版本
二、准备:
1.设置 MinGW 环境变量到 PATH,设置对象为 D:\MinGW\bin 以及 D:\MinGW\msys\1.0\bin
2.修改 MinGW 中的 msys.bat,在最前面加入:call "F:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\vcvarsall.bat"
3.将 yasm、c99conv.exe、c99wrap.exe、makedef 放入 D:\MinGW\bin,并修改 D:\MinGW\msys\1.0\bin 中的 link.exe 为任意别名
4.将 ffmpeg 放入 D:\MinGW\msys\1.0\home\pc 下,cd 进入并且 “git --reset hard” 加上“你的版本 MD5 码值”
三、开工:
1.配置交叉编译选项
./configure --prefix=/home/pc/FFmpegSDK --enable-gpl --enable-version3 --enable-nonfree --disable-ffmpeg --disable-ffplay --disable-ffprobe --disable-ffserver --disable-pthreads --disable-os2threads --enable-dxva2 --enable-vda --enable-vdpau --disable-everything --enable-decoder=mjpeg --enable-decoder=h264 --enable-decoder=adpcm_g726 --enable-decoder=aac --enable-decoder=pcm_alaw --enable-encoder=mjpeg --enable-encoder=h264 --enable-encoder=adpcm_g726 --enable-encoder=aac --enable-encoder=pcm_alaw --enable-muxer=matroska --enable-demuxer=matroska --toolchain=msvc --enable-memalign-hack --disable-debug
2.make,make install,然后在相应目录下取得 *.h 和 *.a,并把生成的 config.h、inttypes.h 也拿过来
3.建立 VS2010 静态库工程,加入 config.h 以及一个空的 c 文件,配置工程属性额外的包含文件目录和库文件目录,设置为刚才得到的文件所在目录
4.配置 VS2010 属性,库管理器中,重点配置编译依赖库为“是”(以下是插图),优化方面可自行斟酌配置,略过
5.编译生成 .lib,如果遇到警告或者错误导致失败,少头文件或者是冲突等,按编译器给的提示添加即可,无需修改代码,重复 5 直到完成!
四、恢复:
把 “二、准备:” 中做的事该撤销的撤销,自己决定即可。