最近需要自己做播放器,要利用ffmpeg来做解码,于是我痛苦的历程就开始了,为期3天的摸爬滚打才真正编译出了静态库。 为了防止以后忘记,将编译过程记录下来。
虽然其官网上有dll及lib,但是是以mingw的方式编译的,以后出ffmpeg库出问题了没法调试。 而且以前面使用VLC的经验来看FFMpeg是一个容错做的不是太好的库。
下面详细步骤:
基本上参照官网上的步骤:
1. 准备工作
->MinGW (mingw-get-inst-20120426.exe) ,下载的是这个版本的。直接安装到D:\MinGw
->C99-to-C89 Converter & Wrapper
->msinttypes (是两个头文件)
->YASM (WIN32版本)
->源码ffmpeg2.1版本
2. 将ffmpeg的源码放到D:\MinGw\msys\1.0\home\****(电脑的用户名)\
将C99-to-C89里面的c99conv.exe、c99wrap.exe、makedef 复制到D:\MinGW\msys\1.0\bin
将下载的YASM的文件改名为yasm.exe 然后放入到 D:\MinGW\msys\1.0\bin
将D:\MinGW\msys\1.0\bin及D:\MinGw\bin 加入到环境变量中。
将msinttypes 中的头文件解压出来,然后也放入到环境变量中
3. 打开 "Visual Studio 命令提示(2010)" 的命令行窗口,
cd 跳转到这个目录 "C:\MinGW\msys\1.0",后运行 msys.bat 命令,
这样就进入了即能运行 vs2010 的 cl 等命令,又能运行 msys 里面的命行的模式了
另外还需要做2点:设置临时目录及替换link
在命令行模式里输入 export TEMPDIR=/home/Administrator/temp
在命令行模式里输入 which link,此时应该看到的是/bin/link, 那么输入命令 mv /bin/link.exe /bin/mingw-link.exe 现在再输入which link, 得到的提示应该就是:C:\Program Files\Microsoft Visual Studio 9.0\VC\bin\link (这里一定要注意,网上很多资料都没有提及到这点,导致你做configue时候,会出现c99wrap cl is unable to create*** 的错误,在config.log里也有相应的提示,不过当时自己太菜了,竟然没有根据提示找准问题,害的自己白白浪费了太多时间),
4. 开始编译:
./configure --enbale-memalign-hack --toolchain=msvc --disable-libx264
make
make install
后面就可以在 D:\MinGW\msys\1.0\local 下收获成果了。
PS: 可能出现error link 2001的错误。我是直接用msinttypes里面的stdint.h覆盖掉:C:\Program Files\Microsoft Visual Studio 9.0\VC\include下的文件的,做法不是太好,好想是可以用一个宏包起来更好。