--------------------
准备
--------------------
(1)win7 32位操作系统
(2)关闭所有杀毒软件:360,QQ电脑管家,小红伞,金山等
(3)VS2010安装目录:"F:\Program Files“
(4)MinGW安装目录:"F:\MinGW"
--------------------
1.安装MinGW:
--------------------
(1)下载地址 "http://www.mingw.org"
(2)安装时勾选 c compiler ,c++ compiler ,msys basic system和MinGW Developer ToolKi。
(3)我的安装目录在 "F:\MinGW"
(4)编辑"F:\MinGW\msys\1.0\msys.bat"文件,在最前面增加一行:
call "F:\Program Files\Microsoft Visual Studio 10.0\VC\bin\vcvars32.bat"
----------------------
3.安装ffmpeg:
----------------------
(1)下载地址 "http://ffmpeg.org/"
(2)解压到 "F:\"
----------------------
4.下载Yasm:
----------------------
(1)下载地址 "http://yasm.tortall.net/" 注:要选择win32的。
(2)重命名"yasm-1.2.0-win32.exe" 为 "yasm.exe",并复制到 "C:\windows\System32\" 目录下。
----------------------
5.编译
----------------------
(1)以管理员身份运行 "F:\MinGW\msys\1.0\msys.bat"
$cd /f/ffmepg-1.1.3
$./configure --enable-shared --disable-static --enable-memalign-hack
$make
$make install
(2)生成的库在"F:\MinGW\msys\1.0\local\"目录下。
6.设置vs2010工程
----------------------
(1)右击工程名->属性->配置属性->C/C++->常规->附加包含目录:
增加"F:\MinGW\msys\1.0\local\inlude"
(2)右击工程名->属性->配置属性->链接器->常规->附加库目录:
增加"F:\MinGW\msys\1.0\local\bin"
(3)右击工程名->属性->配置属性->链接器->输入->附加依赖项:
增加下面4项:
avcodec.lib
avformat.lib
swscale.lib
avutil.lib
注:这样可以不用在源文件中使用#pragma comment
(4)由于这些lib文件其实是对dll文件的引用。
所以需要将"F:\MinGW\msys\1.0\local\bin\"目录下的dll文件复制到工程目录下。
(5)由于vs2010不支持<inttypes.h>头文件。去网上下载一份inttypes.h头文件,放到"F:\Program Files\Microsoft Visual Studio 10.0\VC\include"目录下。
(6)如果出现无法解析的外部符号,则可能的原因是:ffmpeg是标准C下的项目,如果按照.CPP的方式引用会有问题。
解决方法:更改头文件的包含方式
#ifdef __cplusplus
extern "C" {
#endif
/*Include ffmpeg header file*/
#ifdef __cplusplus
}
#endif