2014-05-20 215 views
3

我試圖在Windows應用程序中使用FFMpeg庫。我使用MingW-w64編譯帶有靜態庫的FFMpeg,其中一個架構使用x86,一個使用x86_64。 目前我正試圖將32位x86庫與我的VS2008應用程序鏈接起來。 庫被添加到庫路徑和VS不抱怨無法加載.a文件。爲Visual Studio編譯FFMpeg庫

但是我得到幾個uneresolved符號錯誤,如 ait_rtp_receiver.lib(ait_decoder_lib.obj):錯誤LNK2001:解析外部符號_av_free

我導入FFmpeg的頭文件作爲外部C,我可以看到的符號.a沒有領先的下劃線。 我可以做些什麼來使Mingw-w64的gcc和VS編譯器套件的名稱兼容?

+1

究竟這是爲什麼被downvoted?我認爲我添加了所有詳細信息來簡潔地描述問題 – LostBoy

+2

將FFMpeg構建爲* .dlls('--enable-shared'),然後使用生成的導入* .lib將其鏈接到「MSVC」。將靜態'MinGW'庫與'MSVC'聯繫起來是一團糟,因爲您還必須鏈接libgcc.a,libgcc_eh.a和其他庫。所以你最好編譯dll。 – Thomas

回答

6

花了很多時間試圖讓基於GCC-Mingw的版本構建FFMpeg工作後,我恢復使用Visual Studio或Windows SDK編譯器和鏈接器。使用配置腳本的--toolchain = msvc使構建過程生成靜態.a文件,這些文件基本上是可以在Visual Studio項目中加載的.lib文件。

我寫的構建步驟,此處是一個link