Windows下编译ffmpeg库过程

编译过程十分繁琐复杂,花了不少时间发火总结如下:

通过windows + MinGW + MSYS编译


1、安装MinGW 和MSYS

到这http://sourceforge.net/projects/mingw/files/下载最新

点击Download mingw-get-setup.exe,我采用了默认安装,路径C:\MinGW;

安装mingw,我们点击左侧栏中的“Basic Setup”项,接着在右侧栏的每一项上点击右键,选择“Mark For Installation"项,然后那个选项的白框上就会出现一个箭头,表示已选中。

我们点击菜单栏中的”Installation“项中的”Apply Changes“选项,程序就开始自动下载安装MinGW组件包了。

 

到此MinGW 和MSYS都安装好了。

2、进入mingw安装目录下:C:\MinGW\msys\1.0找到msys.bat文件,记事本打开编辑,在最前边加上一行:

call "D:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\vcvars32.bat"

效果如下图:


这样做的目的是链接VS,来生成window下的库文件。上面的路径是对应你装的VS路径,我的环境是VS2015

注意:这一行必需处在此文件的最开始处(我把它放到除去rem开头之外的最前面还是不能正常工作,不知道为啥),同时修改你的vc路径,我的是vs2015,所以是14.0,此修改指定vcvcvars32.bat文件位置并修改它

如果是你的os64位的,还需要对该文件的 _WindowsNT 处进行修改,紧跟这一行的下面一行添加:

rem Hopefully a temporary workaround for getting MSYS shell to run on x64

rem (WoW64 cmd prompt sets PROCESSOR_ARCHITECTURE to x86)

if not "x%PROCESSOR_ARCHITECTURE%" == "xAMD64" goto _NotX64

set COMSPEC=%WINDIR%/SysWOW64/cmd.exe

%COMSPEC% /c %0 %1 %2 %3 %4 %5 %6 %7 %8 %9

goto EOF

:_NotX64

效果如下:


关于64位的部分,我没有试,只不过是直接从说明处到拷贝过来


3、下载最新的ffmpeghttp://ffmpeg.zeranoe.com/builds/source/ffmpeg/


解压到工作目录。。。

进入ffmpeg源码目录,编译:

./configure --enable-memalign-hack --disable-debug

出现的第一个错误是“gcc is unable to create an executable file”,如下:


参考:http://www.07net01.com/2014/09/169624.html

原因是gcc的系统变量没有设置

解决办法是添加环境变量C:/MinGW/bin


第二个错误是"yasm/nasm not found or too old"

原因是没有安装yasm,解决办法是安装yasm

3.下载最新的yasmhttp://yasm.tortall.net/Download.html

     选择对应你系统的yasm.exe  (我的系统是win7 32位的选择的Win32.exe);

将下载的yasm*.exe改名为yasm.exe 放入C盘下/windows/system32/目录下,这样就省去了环境变量的设置 。

参考链接:http://blog.csdn.net/ranxiedao/article/details/16359183



第三个错误是"pkg-config not found, library detection may fail."

原因是没有安装pkg-config

解决办法是安装pkg-config

下载pkg-config放到bin目录下:https://pkg-config.freedesktop.org/releases/

它的介绍:https://www.freedesktop.org/wiki/Software/pkg-config/

需要下载的文件:pkg-config-0.23-2.zip

http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/pkg-config-0.23-2.zip

glib_2.18.4-1_win32.zip

http://ftp.gnome.org/pub/gnome/binaries/win32/glib/2.18/glib_2.18.4-1_win32.zip

只需要用到其中的 libglib-2.0-0.dll 文件,其他的文件可以扔掉。

参考:http://mysuperbaby.iteye.com/blog/906223


4、开始编译:

3.1 编译静态库

 A. 配置

在shell提示符下输入:

 

这个过程要花费较长的时间,开始会有较长的时间没有反应。其中的prefix是msys的安装路径

B. 编译

make

C. 安装

make install

安装只是把要开发使用的库文件拷贝到c:/msys/1.0/lib/目录中,头文件拷贝到c:/msys/1.0/include/目录中。

产生的库文件为.a文件

 

3.2 编译动态库

动态库和静态库只在配置上的差别,配置如下:

./configure 

后面的步骤一样:

make

make install

在开始编译之前,可以把原来编译的目标 文件清除掉:

make distclean

 

动态编译应该是会产生lib文件,但是我编译之后一直没有产生,所以后面的开发,用的都是静态库

编译之后的dll文件被放到了ffmpeg目录下,可以搜索查看它们

 

Make的时候出现如下一个错误:


这个错误弄了好久也找不到答案。。。以后有机会再弄





  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值