您的位置:首页 > 其它

vs2010中进行ffmpeg编译与单步调试

2014-03-23 22:15 363 查看
本文在win7 x64系统上实践后总结得到

1、 下载文件

C99-to-C89 Converter & Wrapper(https://github.com/libav/c99-to-c89/releases)

Msinttypes(http://code.google.com/p/msinttypes/downloads/list)

MinGW,包含MSYS(http://sourceforge.net/projects/mingw/)

YASM(http://yasm.tortall.net/Download.html)

ffmpeg源码(http://www.ffmpeg.org/download.html)

SDL(http://www.libsdl.org/download-1.2.php)

2、 安装MinGW,安装的时候一定要选中msys,否则要另外下载安装msys,如果不知道该安装哪些选项,可选中Basic Setup中所有右边选项进行安装,如下图1所示,然后选择Installation->update catalogue->review changes->apply,等待安装



图1

3、 如果上一步骤中MinGW安装的目录为D:/MinGW,则找到D:/MinGW/msys/1.0/msys.bat文件,打开文件并在最前面加上下面一行

call” D:\Program Files(x86)\MicrosoftVisual Studio 10.0\VC\bin\vcvars32.bat”(自己的VC安装目录)

4、 将D:\MinGW\msys\1.0\bin\link.exe改成mingw_link.exe,不要和VC的link冲突

5、 将C99-to-C89里面的c99conv.exe、c99wrap.exe、makedef 复制到D:\MinGW\msys\1.0\bin,将下载的vsyasm.exe放入到D:\ ProgramFiles(x86)\Microsoft Visual Studio 10.0\VC\bin,将D:\MinGW\msys\1.0\bin及D:\MinGW\bin加入到系统变量path中,将msinttypes中的头文件解压出来,新建系统变量INCLUDE,将变量值改为其所在路径,重启计算机(或者最后重启)

6、 将下载的ffmpeg源码解码并放到D:\MinGW\msys\1.0\home\username目录下,放置的目录结构可如下图2所示



图2

7、 从菜单->所有程序->MicrosoftVisual Studio 2010->Visual Studio tools->Visual Studio x64兼容工具命令提示(2010)中启动D:/MinGW/msys/1.0/msys.bat文件

8、 在msys环境中转到你的ffmpeg源码文件,源码中第一级目录应该有configure文件,输入指令

./configure –toolchain=msvc –enable-memalign-hack–enable-debug –enable-shared(如图3)

make

这样可在你的ffmpeg各级目录下分别找到编译生成的dll,lib和exe文件,同时也能找到对应的pdb文件

make install

在D:\MinGW\msys\1.0\local文件下可找到编译好的include文件,bin文件以及对象的lib文件



图3

9、 一般经过这一步只能生成ffmpeg.exe和ffprobe.exe两个应用程序,如果要生成ffpaly.exe应用程序,此时需要将SDL解压后的文件中的bin,lib和include三个文件复制到文件目录D:\MinGW\msys\1.0\local下,并与原来文件合并,同时打开sdl-config文件,将prefix=/usr/local/cross-tools/i686-w64-mingw32改成prefix=D:/MinGW,重新make即可生成对应的ffplay.exe(可选)

10、 由于PDB文件含有可调试信息,因此此时可以在vs2010中新建一个项目对你所需的ffmpeg中函数进行调试,注意需要将第7步中生成的lib,dll,pdb文件以及include文件包含进来,这样就可以正式进行单步调试了。

值得注意的是,由于在编译过程中采用了c99转c89操作,导致pdb中调试信息和源代码虽然大部分单步调试没问题,但还是会出现少数代码调试不匹配情况,所以如果非常准确调试ffmpeg的话最好还是上linux系统调试,本文方法只适合没有linux系统而想通过windows上vs2010调试ffmpeg中大概功能流程的人。

最后,附上两个参考网址:

http://ffmpeg.org/platform.html#Microsoft-Visual-C_002b_002b-or-Intel-C_002b_002b-Compiler-for-Windows

http://ffmpeg.zeranoe.com/forum/viewtopic.php?f=5&t=1309
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: