我正在使用FFmpeg和SDL在Visual Studio 2010中构建Windows MFC应用程序。但是,从头开始创建MFC项目并包括FFmpeg开发库(avcodec.lib,avdevice.lib,avformat.lib等)后,我无法构建项目。我正在使用Zeranoe FFmpeg的开发版本。我在项目属性中配置了以下内容:
对于它的价值,当我从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.
我已经引用了这两篇文章,这些文章都有帮助:
答案 0 :(得分:4)
我认为你所做的就是这个。当你完成前两个步骤时
- 设置VC ++目录 - >包括目录(添加了FFmpeg “包含”目录)
- 设置VC ++目录 - >图书馆目录 (到FFmpeg“lib”目录)
醇>
您已将它们包含在MFC和ATL路径之前的列表顶部。请使用向上/向下按钮将它们移动到列表底部。这应该可以解决问题
答案 1 :(得分:1)
查看Use FFmpeg in Visual Studio - 它对于根据Zeranoe二进制文件构建的小型Visual Studio 2010项目有一个link。
请注意,您需要inttypes.h
文件才能成功构建。
您的日志显示stdafx.cpp
的问题,这意味着您的搜索路径设置错误,或者stdafx.h
出现问题。将FFmpeg目录放在搜索列表的顶部可能会有用,但它同样可能会破坏MFC部分的构建。我宁愿将它们放在列表的底部,但是代码本身应该具有明确的#include
s的正确顺序。