Visual studio 2010 使用Visual Studio 2010、MFC和FFmpeg构建

Visual studio 2010 使用Visual Studio 2010、MFC和FFmpeg构建,visual-studio-2010,mfc,ffmpeg,Visual Studio 2010,Mfc,Ffmpeg,我正在Visual Studio 2010中使用FFmpeg和SDL构建一个Windows MFC应用程序。但是,在从头创建MFC项目并包含FFmpeg开发库(avcodec.lib、avdevice.lib、avformat.lib等)之后,我无法构建该项目。我正在使用来自的开发构建。我已在项目属性中配置了以下内容: 设置VC++目录->包含目录(添加FFmpeg“包含”目录) 设置VC++目录->库目录(到FFmpeg“lib”目录) 设置链接器->输入->其他依赖项(包括avcodec.l

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

  • 设置VC++目录->包含目录(添加FFmpeg“包含”目录)
  • 设置VC++目录->库目录(到FFmpeg“lib”目录)
  • 设置链接器->输入->其他依赖项(包括avcodec.lib等)
  • 值得一提的是,当我从VC++目录->包含目录中省略FFmpeg的“include\libavutil”include时,构建成功了

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

    ClCompile:
    stdafx.cpp

    c:\program files\microsoft visual studio 10.0\vc\atlmfc\include\atltime.h(371):错误C3861:“\u mktime64”:找不到标识符

    c:\program files\microsoft visual studio 10.0\vc\atlmfc\include\atltime.h(386):错误C3861:“\u localtime64\u s”:找不到标识符

    c:\program files\microsoft visual studio 10.0\vc\atlmfc\include\atltime.h(409):错误C3861:“\u gmtime64\u s”:找不到标识符

    c:\program files\microsoft SDK\windows\v7.0a\include\intsafe.h(144):警告C4005:“INT8\u MIN”:宏重新定义

    c:\program files\microsoft visual studio 10.0\vc\atlmfc\include\afxtaskspane.h(279):错误C2146:语法错误:缺少“;”在标识符“m_nlastanime”之前

    c:\program files\microsoft visual studio 10.0\vc\atlmfc\include\afxribboncategory.h(282):错误C2146:语法错误:缺少“;”在标识符'm_ActiveTime'之前

    c:\program files\microsoft visual studio 10.0\vc\atlmfc\include\afxdockingmanager.h(353):错误C2146:语法错误:缺少“;”在标识符“m_clkLastTime”之前

    生成失败。

    我引用了这两篇文章,它们都很有帮助:


      • 我想你所做的就是这样。当您完成前两步时

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

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

        我想你所做的就是这样。当您完成前两步时

      • 设置VC++目录->包含目录(添加了FFmpeg “包括”目录)
      • 设置VC++目录->库目录 (到FFmpeg“lib”目录)
      • 您已将它们包含在MFC和ATL路径之前的列表顶部。请使用向上/向下按钮将其移动到列表底部。这应该可以解决这个问题

        看一看——它有一个小型的Visual Studio 2010项目,该项目基于Zeranoe二进制文件构建

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

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

        看一看-它有一个小型Visual Studio 2010项目,该项目基于Zeranoe二进制文件构建

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


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

        谢谢!那是我的问题。对于其他有相同问题的用户,VisualStudio在使用“包含目录”对话框时,默认情况下会将包含添加到列表的前面。您必须手动将其移动到前面的$(IncludePath)变量:
        $(IncludePath);C:\lib\ffmpeg-20130110-git-2672b2c-win32-dev\include谢谢!那是我的问题。对于其他有相同问题的用户,VisualStudio在使用“包含目录”对话框时,默认情况下会将包含添加到列表的前面。您必须手动将其移动到前面的$(IncludePath)变量:
        $(IncludePath);C:\lib\ffmpeg-20130110-git-2672b2c-win32-dev\include谢谢,我不知道我怎么会在发布前错过搜索SO的页面,但我想最终它不会解决我的古怪的包含订购问题。我之前确实包含了
        inttypes.h
        ,所以这不是问题所在。谢谢,我不知道在发布前我怎么会错过搜索so的页面,但我想最终它不会解决我的古怪的包含订购问题。我以前确实包含了
        inttypes.h
        ,所以这不是问题所在。