windows下编译可在visual studio中调试的FFmpeg

来源:互联网 发布:知乎搞笑问答 编辑:程序博客网 时间:2024/05/16 13:56

工欲善其事,必先利其器。对于一个开源项目最好最快的熟悉方式莫过于自己能够进行调试,而FFmpeg又是如此的强大、复杂。自己能够调试FFmpeg将给我们节省很多时间,能够跟快速的学习FFmpeg。分享一下在window7系统下编译能够在visual studio2010中进行调试FFmpeg的过程。

一、编译环境

windows7 32位 + visual studio2010 + MingGW + FFmpeg-3.2.2

二、编译工具下载

(1)下载visual studio2010
(2)MinGW
(3)下载C99-to-C89 Converter & Wrapper
(4)Msinttypes
(5)YASM
(6)pkg-config

三、安装与配置

3.1、MinGW

(1)下载网址https://github.com/libav/c99-to-c89/releases
(2)安装
下载MinGW并默认安装(位置C:\MinGW)勾选如下图所示安装包进行安装
这里写图片描述
(3)配置
配置系统环境变量,把C:\MinGW\bin;C:\MinGW\msys\1.0\bin加入到系统环境变量中。
同时找到C:\MinGW\msys\1.0\msys.bat文件,右键编辑,在最前面添加(visual studio2010的安装路径),如下图所示。
这里写图片描述

3.2、Msinttypes

(1)下载地址(http://code.google.com/p/msinttypes/downloads/list)
主要是MSVC 2012 以及之前需要
此时还需要新建一个名为INCLUDE的系统环境变量,变量值随意指向一个文件夹,这个文件夹下要装我们所下载的Msinttypes压缩包内的两个头文件,我的目录为D:\FFmpeg\include; ,配置如下图所示:
这里写图片描述

3.3、配置c99wrap和yasm

(因为vs2010只支持到c89,不支持c99,所以这里要安装c99),将C99-to-C89压缩包里面的c99conv.exe、c99wrap.exe、makedef着三个文件复制到C:\MinGW\msys\1.0\bin(根据自己安装MinGW的目录决定)。
同时在这个目录下(C:\MinGW\msys\1.0\bin)找到一个名为link.exe的文件,将他重命名一下(随便换个名字),目的是让他与vc的link.exe不冲突。
将下载好的yasm-1.3.0-win32.exe(如果是64位的操作系统则下载yasm-1.3.0-win64.exe)改名为yasm.exe,放入系统的运行目录下,如32位系统则放入到C:\Windows\System32目录下(64位的放入到C:\Windows\SysWOW64目录下)。

3.4、配置pkg-config

(1)下载地址http://download.csdn.net/download/cll131421/4436220
并把下载文件中的bin目录下的.dll和.exe文件拷贝到C:\MinGW\bin目录下

重启系统,让配置环境变量生效

4、编译安装FFmpeg

4.1 Configure FFmpeg

(1)进入需要编译的ffmpeg所在的目录,我的目录为:
C:\MinGW\msys\1.0\home\Administrator\ffmpeg-3.2.2
首先修改ffmpeg中的configure让其支持c99,修改结果如下图所示:
这里写图片描述
(2)打开 “Visual Studio 命令提示(2010)” 的命令行窗口,cd 跳转到这个目录 “C:\MinGW\msys\1.0”,后运行 msys.bat 命令,这样就进入了即能运行 vs2010 的 cl 等命令,又能运行 msys 里面的命行的模式了。如下图所示:
这里写图片描述
这里写图片描述
(3)然后使用如下命令:
./configure –enable-shared –enable-gpl –enable-version3 –toolchain=msvc –prefix=”D:\FFmpeg\bin\FFmpeg3.2.2”(自己建的文件,configure根据系统参数及环境生成makefile,为make做准备)

4.2、Make

make -j4进行并行编译,如出现下图所示错误:
这里写图片描述
解决方法:
把d:\FFmpeg\include\stdint. h中<105><109>行的int_fast16_t和uint_fast16_t注释掉,编译成功。
然后通过make install进行安装

5、在Visual Studio2010中进行调试

5.1、配置文件

(1)把上面编译好的include和lib文件拷贝到当前项目文件夹中进行配置:
项目右键->c/c++->常规->附加包含目录->添加include的目录
链接器->常规->附加库目录->添加lib的目录
(2)工具栏->调试->选项和设置->调试->符号,如下图所示:
这里写图片描述

5.2、调试成功界面

这里写图片描述

6、参考文献

在windows下编译ffmpeg参考:
(1)http://blog.csdn.net/u010380485/article/details/54092264#comments
(2)http://blog.sina.com.cn/s/blog_47612ff10101mri6.html
(3)http://www.voidcn.com/blog/hejjunlin/article/p-6559184.html
(4)FFmpeg官网https://trac.ffmpeg.org/wiki/CompilationGuide/MSVC

关于stdint.h中重定义的解决方法:
(4)http://blog.csdn.net/clever101/article/details/47455501
(5)
http://blog.163.com/kongxiang1023@126/blog/static/467395752013317112410799/
并行编译参考:
(6)http://blog.csdn.net/cscrazybing/article/details/50789482
(7)http://bbs.kafan.cn/thread-1698049-1-1.html
关于pdb调试参考
(8)http://www.cnblogs.com/lidabo/p/3486134.html
关于pkg-config not found解决参考:
(9)http://www.voidcn.com/blog/hejjunlin/article/p-6559184.html
(10)
https://stackoverflow.com/questions/1710922/how-to-install-pkg-config-in-windows
(11) https://segmentfault.com/q/1010000009567981

阅读全文
0 0
原创粉丝点击