windows下编译可在visual studio中调试的FFmpeg
工欲善其事,必先利其器。对于一个开源项目最好最快的熟悉方式莫过于自己能够进行调试,而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
---------------------
作者:吴裕华
来源:CSDN
原文:https://blog.csdn.net/u010011236/article/details/76595394
版权声明:本文为博主原创文章,转载请附上博文链接!
windows下编译可在visual studio中调试的FFmpeg相关推荐
- [译]如何在visual studio中调试Javascript
本文翻译youtube上的up主kudvenkat的javascript tutorial播放单 源地址在此: https://www.youtube.com/watch?v=PMsVM7rjupU& ...
- 在Visual Studio中调试samples中可能出现的错误
在Visual Studio中调试samples中可能出现的错误 进入samples/opencl文件夹下,打开OpenCLSamples.sln,然后选择" 生成 -> 重新生成解决 ...
- visual studio编译linux,在 Visual Studio 中配置 Linux MSBuild C++ 项目
在 Visual Studio 中配置 Linux MSBuild C++ 项目Configure a Linux MSBuild C++ project in Visual Studio 10/16 ...
- Visual studio 中调试ASP程序、Javascript 代码 - 刘稻博客
2019独角兽企业重金招聘Python工程师标准>>> PS: 1.在调试asp时,要先附加进程(附加到:自动:与具体调试网站对应的 dllhost.exe 或 w3wp.exe . ...
- 在Chrome+Visual Studio中调试asp.net程序很慢的问题(Firefox也有类似问题)
今天开始起在Chrome中调试,发现问题主要出在菜单栏(layout文件)中,google了一番,查到很多原因,不过最终解决方法倒是很简单,特此分享一下: 在C:/Windows/System32/d ...
- Windows 下用VS2012(Visual Studio 2012)编译librtmp
https://blog.csdn.net/caoshangpa/article/details/52872756 https://blog.csdn.net/ILOVEYOULEEHUIJIE/ar ...
- visual studio asmx 调试_通过Windows Visual Studio远程调试WSL2中的.NET Core Linux应用程序...
最近两天在Linux中调试.NET Core应用程序,同时我发现在Linux中调试.NET Core应用程序并不容易.一直习惯在Visual Studio中进行编码和调试.现在我想的是可以简单快速的测 ...
- 通过Windows Visual Studio远程调试WSL2中的.NET Core Linux应用程序
最近两天在Linux中调试.NET Core应用程序,同时我发现在Linux中调试.NET Core应用程序并不容易.一直习惯在Visual Studio中进行编码和调试.现在我想的是可以简单快速的测 ...
- windows 运行linux c++,Visual studio中使用C++的Linux 开发
Visual studio中使用C++的Linux 开发 05/15/2017 14 分钟可看完 本文内容 [原文发表地址] Linux development with C++ in Visual ...
- Visual studio中编译和使用libpng和zlib
Visual studio中编译和使用libpng和zlib https://blog.csdn.net/jinzhuojun/article/details/7972747 转载于:https:// ...
最新文章
- ACM入门之【树状数组】
- Objective-C中block的底层原理
- 创建hugo博客_如何创建您的第一个Hugo博客:实用指南
- pythoninterp error_Python numpy.interp方法代码示例
- (王道408考研操作系统)第三章内存管理-第一节7:非连续分配管理方式之基本分段管理方式
- ubuntu 命令记忆
- 使用管道和rm命令遇到的问题
- 解决RecyclerView的onClickListener问题
- 华为机顶盒系统时间同步服务器,华为悦盒主时间同步服务器地址
- Photoshop插件-创建亮调通道蒙板-脚本开发-PS插件
- 4G+5G多卡聚合(弱网通信)路由器视频传输最佳选择
- MultiButton | 一个小巧简单易用的事件驱动型按键驱动模块
- xampp mysql 端口被占用_如何解决XAMPP安装后提示80端口被占用
- On Inferring Autonomous System Relationships in the Internet 论文阅读笔记
- 凸函数高维性质证明(Jenson不等式)
- 淘宝网及新浪网等几大官方IP查询API接口地址库的调用及使用方法教程
- 30城市地震风险排行上海最低
- WPS将Word文档转化成PDF格式
- 透视Linux内核神奇的BPF 一
- VUE调用高德地图之电子围栏
热门文章
- 使用Eclipse创建的第一个javabean,cannot resolved to a type
- php 5.5 preg replace,解决ecshop在php5.5以上环境preg_replace报错方法
- 电脑麦克风插孔是哪个_科唛BoomXD 2.4G数字无线麦克风
- JetBrains注册码计算(IntelliJ IDEA 15.0注册码激活)
- Nginx服务器中的Socket切分,需要的朋友可以参考下
- 【22】Vue 之 Vue Devtools
- Redis命令拾遗四——集合类型(命令补充)
- 部署桌面虚拟化时要考虑的因素
- PHP oop之大讨论 --- 你究竟有无在用OOP
- C语言中强制转换问题