在Windows10中构建Win32版本Ffmpeg时显示错误,如何解决?

问题描述

我构建了一个Win32版本的ffmpeg,以便按照https://trac.ffmpeg.org/wiki/CompilationGuide/WinRT文档的要求在Windows10中获取.dll和.lib文件,我执行了命令

    ../../../configure \
--toolchain=msvc \
--disable-programs \
--disable-d3d11va \
--disable-dxva2 \
--arch=x86 \
--enable-shared \
--enable-cross-compile \
--target-os=win32 \
--extra-cflags="-MD -DWINAPI_FAMILY=WINAPI_FAMILY_APP -D_WIN32_WINNT=0x0A00" \
--extra-ldflags="-APPCONTAINER WindowsApp.lib" \
--prefix=../../../Build/Windows10/x86

一切正常,之后,我执行命令:

make

显示错误

\Users\LEE\Downloads\ffmpeg-snapshot\ffmpeg\Output\Windows10\x86\config.h: warning C4828: The file contains a character starting at offset 0x2da,which is invalid in the current source character set (code page 65001) .
c:\users\lee\downloads\ffmpeg-snapshot\ffmpeg\libavcodec\mf_utils.h(59): error C2143: Syntax error: missing ")" (before "*")
c:\users\lee\downloads\ffmpeg-snapshot\ffmpeg\libavcodec\mf_utils.h(59): error C2143: Syntax error: missing "{" (before "*")
c:\users\lee\downloads\ffmpeg-snapshot\ffmpeg\libavcodec\mf_utils.h(60): warning C4228: Non-standard extension used: Ignore the qualifier after the comma in the declarator list
c:\users\lee\downloads\ffmpeg-snapshot\ffmpeg\libavcodec\mf_utils.h(60): error C2143: Syntax error: missing ";" (before "*")
c:\users\lee\downloads\ffmpeg-snapshot\ffmpeg\libavcodec\mf_utils.h(61): error C2371: “IMFActivate”: redeFinition; different base types
C:\Program Files (x86)\Windows Kits\10\Include\10.0.14393.0\um\mfobjects.h(184): note: see the statement of "IMFActivate"
c:\users\lee\downloads\ffmpeg-snapshot\ffmpeg\libavcodec\mf_utils.h(61): error C2143: Syntax error: missing ";" (before "*")
c:\users\lee\downloads\ffmpeg-snapshot\ffmpeg\libavcodec\mf_utils.h(61): warning C4142: "UINT32": benign redeFinition of types
C:\Program Files (x86)\Windows Kits\10\Include\10.0.14393.0\shared\basetsd.h(81): note: see the statement of "UINT32"
c:\users\lee\downloads\ffmpeg-snapshot\ffmpeg\libavcodec\mf_utils.h(61): error C2370: “UINT32”: redeFinition; different storage class
C:\Program Files (x86)\Windows Kits\10\Include\10.0.14393.0\shared\basetsd.h(81): note: see the statement of "UINT32"
c:\users\lee\downloads\ffmpeg-snapshot\ffmpeg\libavcodec\mf_utils.h(61): error C2059: Syntax error: ")"
c:\users\lee\downloads\ffmpeg-snapshot\ffmpeg\libavcodec\mf_utils.h(166): error C2143: Syntax error: missing ")" (before "*")
c:\users\lee\downloads\ffmpeg-snapshot\ffmpeg\libavcodec\mf_utils.h(166): error C2081: "MFT_REGISTER_TYPE_INFO": The name in the formal parameter table is illegal
c:\users\lee\downloads\ffmpeg-snapshot\ffmpeg\libavcodec\mf_utils.h(166): error C2143: Syntax error: missing "{" (before "*")
c:\users\lee\downloads\ffmpeg-snapshot\ffmpeg\libavcodec\mf_utils.h(167): error C2143: Syntax error: missing ";" (before "*")
c:\users\lee\downloads\ffmpeg-snapshot\ffmpeg\libavcodec\mf_utils.h(168): error C2059: Syntax error: "type"
c:\users\lee\downloads\ffmpeg-snapshot\ffmpeg\libavcodec\mf_utils.h(168): error C2059: Syntax error: ")"
C:/Users/LEE/Downloads/ffmpeg-snapshot/ffmpegbavcodec/mf_utils.c(54): error C2143: Syntax error: missing ")" (before "*")
C:/Users/LEE/Downloads/ffmpeg-snapshot/ffmpegbavcodec/mf_utils.c(54): error C2143: Syntax error: missing "{" (before "*")
C:/Users/LEE/Downloads/ffmpeg-snapshot/ffmpegbavcodec/mf_utils.c(55): warning C4228: Non-standard extension used: Ignore the qualifier after the comma in the declarator list
C:/Users/LEE/Downloads/ffmpeg-snapshot/ffmpegbavcodec/mf_utils.c(55): error C2143: Syntax error: missing ";" (before "*")
C:/Users/LEE/Downloads/ffmpeg-snapshot/ffmpegbavcodec/mf_utils.c(56): error C2371: “IMFActivate”: redeFinition; different base types
C:\Program Files (x86)\Windows Kits\10\Include\10.0.14393.0\um\mfobjects.h(184): note: see the statement of "IMFActivate"
C:/Users/LEE/Downloads/ffmpeg-snapshot/ffmpegbavcodec/mf_utils.c(56): error C2143: Syntax error: missing ";" (before "*")
C:/Users/LEE/Downloads/ffmpeg-snapshot/ffmpegbavcodec/mf_utils.c(56): warning C4142: "UINT32": benign redeFinition of types
C:\Program Files (x86)\Windows Kits\10\Include\10.0.14393.0\shared\basetsd.h(81): note: see the statement of "UINT32"
C:/Users/LEE/Downloads/ffmpeg-snapshot/ffmpegbavcodec/mf_utils.c(56): error C2370: “UINT32”: redeFinition; different storage class
C:\Program Files (x86)\Windows Kits\10\Include\10.0.14393.0\shared\basetsd.h(81): note: see the statement of "UINT32"
C:/Users/LEE/Downloads/ffmpeg-snapshot/ffmpegbavcodec/mf_utils.c(56): error C2059: Syntax error: ")"
C:/Users/LEE/Downloads/ffmpeg-snapshot/ffmpegbavcodec/mf_utils.c(57): error C2054: "(" should be entered after "pnumMFTActivate"
C:/Users/LEE/Downloads/ffmpeg-snapshot/ffmpegbavcodec/mf_utils.c(584): error C2143: Syntax error: missing ")" (before "*")
C:/Users/LEE/Downloads/ffmpeg-snapshot/ffmpegbavcodec/mf_utils.c(584): error C2081: "MFT_REGISTER_TYPE_INFO": The name in the formal parameter table is illegal
C:/Users/LEE/Downloads/ffmpeg-snapshot/ffmpegbavcodec/mf_utils.c(584): error C2143: Syntax error: missing "{" (before "*")
C:/Users/LEE/Downloads/ffmpeg-snapshot/ffmpegbavcodec/mf_utils.c(585): error C2143: Syntax error: missing ";" (before "*")
C:/Users/LEE/Downloads/ffmpeg-snapshot/ffmpegbavcodec/mf_utils.c(586): error C2059: Syntax error: "type"
C:/Users/LEE/Downloads/ffmpeg-snapshot/ffmpegbavcodec/mf_utils.c(587): error C2059: Syntax error: ")"
make: *** [/c/Users/LEE/Downloads/ffmpeg-snapshot/ffmpeg/ffbuild/common.mak:67: libavcodec/mf_utils.o] Error 2

我不知道为什么,谢谢你!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)