ffmpeg在windows下使用MinGW+msys+VS2015编译(x86或64版本,链接x264库,VS2015中可debug调试)

参照官网链接: https://trac.ffmpeg.org/wiki/CompilationGuide/MSVC部分修改

本文主要介绍使用MSVC工具链配合MinGW编译ffmpeg等相关库,供VS调用。使用VS2015作为样板,实际中,VS2013也是可行的(可以参照之前一篇,年代久远,有一些小错误,不再那篇基础上进行更新了)

需要了解的是:
MinGW本身的目的就是使用GCC的工具链可以编译出windows环境可以执行的exe文件,因此,如果只是需要编译出ffmpeg可执行文件,不需要vs调试,在下文中----toolchain=msvc或者CC=cl这样的语句删除即可。即:可按照官网等其他文章的介绍,按照linux的环境直接编译。对于FFmpeg链接x264时,需要指定库目录以及include目录 【–extra-ldflags=-L[lib目录地址] --extra-cflags=-I[include目录地址]】,-L与目录间无空格,具体的编译configure参数后面也会进行简单的介绍。

####注意,下面的关于mingw与msys的介绍都是较老版本的。关于msys2与minGW64移步备份 或者 [原文]
####下面主要是介绍x86版本的编译
64位的编译主要参照x86版本,基本相同,只用修改以下几点:

  1. msys.bat里面改为 call “C:\software\Microsoft Visual Studio 14.0\VC\bin\amd64\vcvars64.bat”
  2. 然后就可以正常按x86的命令编译了,不用特别的加–arch=x8_64或–host之类
  3. 遇到x264lib找不到时,x86版本是将lib文件放到C:\software\Microsoft Visual Studio 14.0\VC\lib,而x64是放到C:\software\Microsoft Visual Studio 14.0\VC\lib\ amd64 \中 用完记得删掉

####注意事项
####把后面编译生成的库文件使用可能出现的问题都提前说明一下,因为大家找到这些文章主要目的也是自己已经参照别人的记录遇到了问题编译不通过,可能看到这些错误原因就不用往下看了,节省大家时间

  1. ffmpeg链接x264库时,编译时可能会出现找不到libx264的问题,因为网上有些资料可能会有错误,主要是因为使用MSVC工具链进行链接是编译选项是–extra-ldflags=-LIBPATH:[lib路径]而不是简单的-L,-L是GUN的工具链的编译选项。

  2. 此外,授人以渔,在msys窗口内看到编译不通过只是一句找不到x264而已,但是我们可以通过打开ffmpeg目录下的config.log查看错误原因,比如有时候是找不到.h文件,那就是就是–extra-cflags路径配置错误,有时候明明–extra-ldflags也配置好了,也使用了-LIBPATH但是还是错误,打开文件可以看到它默认是在lib目录下查找libx264.lib,差一个字都不对,而如果x264使用MSVC动态编译时,出来的libx264.dll.lib,这时就需要改名

  3. 另外一个可能的原因是ffmpeg在配置编译时仿照x264使用了CC=cl而不是toolchain=msvc,通过查看configure文件可以看出toolchain不仅改了CC=cl,而且修改了链接器。因此,如果只是强制使用CC=cl,会使得链接器仍然使用MinGW内的ld.exe。在链接libx264.lib时它会首先去寻找x264而不是libx264(这里也是通过查看config.log发现的)ÿ

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值