由于网上大多数ffmpeg教程都是mingw 或者mingw64编译的在使用的时候需要依赖mingw的库,但是我又不知道那些库是需要的,索性就不用mingw直接用VS本身的工具连进行编译。
这篇文章描述的是我自己编译的ffmpeg静态库,然后加载到我自己的工程中的过程
ffmpeg静态库的编译请参照
https://mp.csdn.net/postedit/84307749
1.工程上右键属性
2.附加依赖项
uafxcw.lib;LIBCMT.lib;libavcodec.a;libavdevice.a;libavfilter.a;libavformat.a;libavutil.a;libswresample.a;libswscale.a
具体路径根据你的工程设置
3.忽略以下库
LIBCMT.lib;uafxcw.lib;mfcs140ud.lib;
否则有可能出现如下问题
1>uafxcwd.lib(afxmem.obj) : error LNK2005: "void * __cdecl operator new(unsigned int)" (??2@YAPAXI@Z) 已经在 LIBCMTD.lib(new.obj) 中定义
1>uafxcwd.lib(afxmem.obj) : error LNK2005: "void __cdecl operator delete(void *)" (??3@YAXPAX@Z) 已经在 LIBCMTD.lib(dbgdel.obj) 中定义
1>uafxcwd.lib(afxmem.obj) : error LNK2005: "void * __cdecl operator new[](unsigned int)" (??_U@YAPAXI@Z) 已经在 libcpmtd.lib(newaop.obj) 中定义
1>uafxcwd.lib(afxmem.obj) : error LNK2005: "void __cdecl operator delete[](void *)" (??_V@YAXPAX@Z) 已经在 LIBCMTD.lib(delete2.obj) 中定义
解决方法如下:
项目属性页-》链接器-》输入
做如下改动,注意顺序
DEBUG:
附加依赖库:uafxcwd.lib;LIBCMTD.lib;
忽略特定默认库:LIBCMTD.lib;uafxcwd.lib
RELEASE:
附加依赖库:uafxcw.lib;LIBCMT.lib;
忽略特定默认库:LIBCMT.lib;uafxcw.lib
4.运行时库设置/MT如下
5.预编译定义如下:
6.编译完成