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
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
相关文章推荐
- 如何用vc6编译ffmpeg, 并单步调试。
- 最新ffmpeg编译和用eclipse进行源码调试
- 最新ffmpeg编译和用eclipse进行源码调试
- 最新ffmpeg编译和用eclipse进行源码调试
- 最新ffmpeg编译和用eclipse进行源码调试
- ubuntu下编译ffmpeg 并单步调试
- 最新ffmpeg编译和用eclipse进行源码调试(linux)
- 如何用vc6编译ffmpeg, 并单步调试
- 最新ffmpeg编译和用eclipse进行源码调试
- Java虚拟机原理分析之Win7下VS2010编译OpenJDK8与单步调试HotSpot VM过程详细记录
- 如何用vc6编译ffmpeg, 并单步调试。
- ffmpeg 2.3 mingw下用vs2010/15编译的一些小问题总结
- 【ffmpeg + VS2010】编译包含libavutil\common.h后出现找不到inttypes.h的问题
- 用Qt Creator编写代码+ vs2010编译调试的配置
- Editplus如何进行JAVA程序编译调试
- 设置VS2010中使用IntelliTrace来进行调试
- 【ffmpeg + VS2010】编译包含libavutil\common.h后出现找不到inttypes.h的问题
- VS2010进行远程调试方法总结
- 采用vs2005对sqlserver 2005 SP进行单步调试
- asp.net core 编译mvc,routing,security源代码进行本地调试