Win7下WinGW+Msys安装编译ffmpeg

来源:互联网 发布:淘宝交易成功后钱在哪 编辑:程序博客网 时间:2024/05/21 07:55

前言

由于工作需要,最近在看ffmpeg方面的东西,在linux下编译安装还好一些,在win下实在是比较麻烦,不过还好最后都通过了。现在记录一下,方便有需要的朋友,也方便自己以后查看。

本人机器环境:Win7 64位

一、安装MinGW+Msys

mingw的全称叫MinimalistGNU for windows,是一套Windows环境下GNU编译组件的接口,通俗的可以说是Win上的gcc 。比起MinGW,也许那只企鹅CygWin更加著名一些,但事实上两者是完全不同的东西。CygWin在Win上模拟一套Linux环境,使用Win的存储系统,编译的却是Linux环境下的程序,和虚拟机比较相似;MinGW则是完全的编译出Windows环境下的程序,换句话说,通过MinGW编译出来的exe是可以直接在explorer下双击运行的。从移植的角度上说,使用MinGW才能真正将一个Linux程序移植到Win,而CygWin不能。

msys的全称叫MinimalSYStem,是一套运行在Windows上的bash,也就是运行在Win上的Linux Terminal 。这个比较好理解,其实就是在Win上使用Linux的命令行进行操作,可以代替cmd来使用。对一些GNU的开源软件,MSYS可能是必需的,因为它们通常需要./configure然后make才能运行(学Linux的童鞋应该非常熟悉这个流程了)。我们将MSYS和MinGW配合使用就可以打造出一个Win下的GNU命令行终端和编译系统。

有一点需要说明的是,MinGW是MSYS都是一套组件而不是一个单独的程序。我们需要下载两者的各组件的压缩包来完成安装配置。组件的意义在于,我们可以下载需要的部分来配置一个想要的系统,比如不搞编译器设计的童鞋可能不需要flex和bison组件(用来词法和语法分析的),而automake工具也可以在需要的时候才安装,这类似于Linux下环境的配置。知道了这些,我们就可以开始MinGW和MSYS的安装了。

第一次安装WinGW+Msys时推荐选择网址http://www.mingw.org/wiki/Getting_Started作为参考。下载 mingw-get-setup.exe并安装,路径为默认路径,可自动下载选中的组件包。安装完成后配置环境变量,我的路径为;C:\MinGW\bin;C:\MinGW\msys\1.0\bin

二、编译ffmpeg

在官网http://ffmpeg.zeranoe.com/builds/下载最新的ffmpeg源码。

启动msys,路径为C:\MinGW\msys\1.0\msys.bat,在shell上的提示符如下:

Administrator@WHH-PC~

$

输入cd命令进入ffmpeg源码放置目录,编译一般是三个步骤,配置、编译、安装

如果是改变编译方式,则还要在配置之前先clean.

1、  编译静态库

1)      配置

在shell提示符下输入:

./configure  - -enable-static  - -enable-memalign-hack  - -prefix=c:/MinGW/msys/1.0 - -extra-cflags=”-fno-common”

这个过程需要几分钟时间,开始会有较长时间没有反应,如果没有错误提示则耐心等待。其中prefix是ffmpeg编译后bin和include安装路径

在该过程中可能会提示没有yasm,此时有两种解决方法:

a.      在configure后加入- -disable-yasm

b.      yasmhttp://yasm.tortall.net/下载,并改名为yasm.exe,复制到:c:/MinGW/msys/1.0/bin目录下

2)      编译

make

3)      安装

make  install

安装只是把要开发使用的库文件copy到c:/MinGW/msys/1.0/lib/目录下,头文件copy到c:/MinGW/msys/1.0/include目录中。产生的库文件为.a文件。

2、  编译动态库

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

./configure  --enable-shared  --disable-static  --enable-memalign-hack  --prefix= c:/MinGW/msys/1.0  - -extra-cflags=”-fno-common”

后面的步骤则同上。

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

make distclean

至此,ffmpeg编译完成,可以在前面设置的安装目录查看生成的库文件和头文件。

三、编译examples

在shell提示符下进入c:/MinGW/msys/1.0/share/ffmpeg/examples

输入make,如无问题则编译成功,查看生成的可执行文件。

在这一步我遇到问题,描述如下:

提示没有找到pkg-config。

经上网查找原来还需要再安装pkg-config和依赖库glib.

1、下载 pkg-config-0.23-2.zip 及 glib_2.18.4-1_win32.zip

http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/pkg-config_0.23-3_win32.zip

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

把 glib_2.18.4-1_win32.zip 中的 libglib-2.0-0.dll 与 pkg-config.exe放在同一目录,或者放在 $path 目录下 .我是放在C:\MinGW\bin目录下。

3、 设置环境变量

export PKG_CONFIG=/c/mingw/bin/pkg-config.exe

exportPKG_CONFIG_PATH=/c/mingw/msys/1.0/lib/pkgconfig:/usr/local/lib/pkgconfig

然后再次make

编译成功。

 


0 0
原创粉丝点击