2014-05-20 168 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