windows下编译ffmpeg静态库时,只能生成.a静态库,ffmpeg静态库加入了x264编码器的支持。当然,我们是可以将这些.a文件链接到我们VC工程的。(建议按此链接顺序)
并且将C:\MinGW\lib加入到附加目录中。
#pragma comment(lib, "libgcc.a")
#pragma comment(lib, "libmingwex.a")
#pragma comment(lib, "libavcodec.a")
#pragma comment(lib, "libavformat.a")
#pragma comment(lib, "libavutil.a")
#pragma comment(lib, "libswscale.a")
#pragma comment(lib, "libx264.a")
#pragma comment(lib, "libpthreadGC2.a")
编译工程,有四个链接错误:
1>libavcodec.a(dsputil_mmx.o) : error LNK2001: unresolved external symbol ___gcc_personality_v0
1>libavcodec.a(dsputil_mmx.o) : error LNK2019: unresolved external symbol __Unwind_Resume referenced in function _gmc_mmx
1>libmingwex.a(mbrtowc.o) : error LNK2019: unresolved external symbol __imp____lc_codepage referenced in function _mbrlen
1>libmingwex.a(wcrtomb.o) : error LNK2001: unresolved external symbol __imp____lc_codepage
解决方法:
加入#pragma comment(lib, "libgcc_s.a"),解决1、2
3、4解决方法如下:
1.cmd命令
2.>cd D:\Program Files\Microsoft Visual Studio 10.0\VC\bin
3>vcvars32.bat
4>cd C:\MinGW\lib
5> lib -remove:mbrtowc.o libmingwex.a
#pragma comment(lib, "libgcc.a")
#pragma comment(lib, "libmingwex.lib")
#pragma comment(lib, "libgcc_s.a")
#pragma comment(lib, "libavcodec.a")
#pragma comment(lib, "libavformat.a")
#pragma comment(lib, "libavutil.a")
#pragma comment(lib, "libswscale.a")
#pragma comment(lib, "libx264.a")
#pragma comment(lib, "libpthreadGC2.a")
#pragma comment(lib, "zlib.lib")
#pragma comment(lib, "libbz2.a")
不一定要和我的一样,但是我的必须要有这些才能链接通过。