1

我正在使用 FFmpeg 和 SDL 在 Visual Studio 2010 中构建 Windows MFC 应用程序。但是,在从头开始创建 MFC 项目并包含 FFmpeg 开发库(avcodec.lib、avdevice.lib、avformat.lib 等)后,我无法构建项目。我正在使用来自Zeranoe FFmpeg的开发版本。我在项目属性中配置了以下内容:

  1. 设置 VC++ 目录 -> 包含目录(添加了 FFmpeg “包含”目录)
  2. 设置 VC++ 目录 -> 库目录(到 FFmpeg“lib”目录)
  3. 设置链接器 -> 输入 -> 附加依赖项(包括 avcodec.lib 等)

对于它的价值,当我从 VC++ 目录 -> 包含目录中省略 FFmpeg 的“include\libavutil”包含时,构建成功。

以下是我收到的一些第一个构建错误(我不会全部发布,因为它很长)。任何帮助,将不胜感激。

ClCompile: stdafx.cpp

c:\program files\microsoft visual studio 10.0\vc\atlmfc\include\atltime.h(371): error C3861: '_mktime64': identifier not found

c:\program files\microsoft visual studio 10.0\vc\atlmfc\include\atltime.h(386): error C3861: '_localtime64_s': identifier not found

c:\program files\microsoft visual studio 10.0\vc\atlmfc\include\atltime.h(409): error C3861: '_gmtime64_s': identifier not found

c:\program files\microsoft sdks\windows\v7.0a\include\intsafe.h(144): warning C4005: 'INT8_MIN' : macro redefinition

c:\program files\microsoft visual studio 10.0\vc\atlmfc\include\afxtaskspane.h(279): error C2146: syntax error : missing ';' before identifier 'm_nLastAnimTime'

c:\program files\microsoft visual studio 10.0\vc\atlmfc\include\afxribboncategory.h(282): error C2146: syntax error : missing ';' before identifier 'm_ActiveTime'

c:\program files\microsoft visual studio 10.0\vc\atlmfc\include\afxdockingmanager.h(353): error C2146: syntax error : missing ';' before identifier 'm_clkLastTime'

Build FAILED.

我参考了这两篇文章,它们都有帮助:

4

2 回答 2

4

我想你做的是这个。当您完成前 2 个步骤时

  1. 设置 VC++ 目录 -> 包含目录(添加了 FFmpeg “包含”目录)
  2. 设置 VC++ 目录 -> 库目录(到 FFmpeg“lib”目录)

您已将它们包含在 MFC 和 ATL 路径之前的列表顶部。请使用向上/向下按钮将它们移动到列表底部。这应该可以解决问题

于 2013-01-11T04:50:47.583 回答
1

查看在 Visual Studio 中使用 FFmpeg - 它有一个指向针对 Zeranoe 二进制文件构建的小型 Visual Studio 2010 项目的链接。

请注意,您需要一个inttypes.h文件才能成功构建。

您的日志显示问题,stdafx.cpp这意味着您的搜索路径设置错误,或者stdafx.h. 将 FFmpeg 目录放在搜索列表的顶部可能会奏效,但它同样可能会破坏 MFC 部分的构建。我宁愿将它们放在列表的底部,但是代码本身应该具有正确的显式#includes 顺序。

于 2013-01-11T08:29:55.397 回答