2013-01-11 135 views
1

我正在使用FFmpeg和SDL在Visual Studio 2010中構建Windows MFC應用程序。但是,我無法從頭開始創建MFC項目幷包括FFmpeg開發庫(avcodec.lib,avdevice.lib,avformat.lib等)後生成項目。我正在使用Zeranoe FFmpeg的開發版本。我已經配置在項目屬性如下:使用Visual Studio 2010,MFC和FFmpeg構建

  1. 集VC++目錄 - >包含目錄(加入FFmpeg的「包括」目錄)
  2. 集VC++目錄 - >庫目錄(到FFmpeg的「lib」目錄)
  3. 設置鏈接器 - >輸入 - >附加依賴(包括avcodec.lib等)

對於它的價值,當我忽略FFmpeg的「包括\ libavutil」生成成功包括從VC++目錄 - >包括目錄。

下面是我收到的第一個構建錯誤(我不會發布全部,因爲它很長)。任何幫助,將不勝感激。

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個步驟

  1. 集VC++目錄 - >包含目錄(加入FFmpeg的 「包括」 目錄)
  2. 集VC++目錄 - >庫目錄 (到FFmpeg的 「LIB」目錄)

您已將它們包括在MFC和ATL路徑之前的列表頂部。請使用上/下按鈕將它們移動到列表的底部。這應該解決的問題

+0

謝謝!那是我的問題。對於其他具有相同問題的人員,在使用「包含目錄」對話框時,Visual Studio默認會將其添加到列表的前面。您必須手動將它移動到前面的$(IncludePath)變量:'$(IncludePath); C:\ lib \ ffmpeg-20130110-git-2672b2c-win32-dev \ include; ...' – spurgeon

1

看一看Use FFmpeg in Visual Studio - 它有一個link小Visual Studio 2010中的項目,建立對Zeranoe二進制文件。

請注意,您需要一個inttypes.h文件才能成功構建。

您的日誌顯示stdafx.cpp的問題,這意味着您的搜索路徑設置錯誤或stdafx.h中有錯誤。將FFmpeg目錄放在搜索列表的頂部可能會消失,但它也可能會破壞MFC部分的構建。我寧願將它們放在列表的底部,但代碼本身應該具有明確的#include s的正確順序。

+0

謝謝,我不知道我在發佈前如何錯過了我的SO搜索頁面,但我想最終它不會解決我的古怪包括訂購問題。我之前包括'inttypes.h',所以這不是問題。 – spurgeon