【问题标题】:Compiling FFMpeg libraries for Visual Studio为 Visual Studio 编译 FFMpeg 库
【发布时间】:2014-07-08 23:40:48
【问题描述】:

我正在尝试在 Windows 应用程序中使用 FFMpeg 库。我使用 MingW-w64 编译带有静态库的 FFMpeg,一次使用 x86,一次使用 x86_64。 目前我正在尝试将 32 位 x86 库与我的 VS2008 应用程序链接。 库被添加到库路径中,VS 不会抱怨无法加载 .a 文件。

但是我得到了几个未解决的符号错误,例如 ait_rtp_receiver.lib(ait_decoder_lib.obj) : error LNK2001: unresolved external symbol _av_free

我将 FFMpeg 头文件导入为 extern C,我可以看到 .a 中没有前导下划线的符号。 如何让 Mingw-w64 的 gcc 和 VS 编译器套件的名称修饰兼容?

【问题讨论】:

  • 为什么这被否决了?我想我添加了所有细节以简明扼要地描述问题
  • 将 FFMpeg 构建为 *.dlls (--enable-shared),然后使用生成的导入 *.lib 将其与 MSVC 链接。将静态 MinGW 库与 MSVC 链接起来简直是一团糟,因为您还必须链接 libgcc.a、libgcc_eh.a 和其他库。所以你最好编译dll。

标签: windows visual-studio ffmpeg mingw


【解决方案1】:

在苦苦尝试让基于 GCC-Mingw 的 FFMpeg 构建版本工作后,我恢复使用 Visual Studio 或 Windows SDK 编译器和链接器。使用配置脚本的 --toolchain=msvc 使构建过程生成静态 .a 文件,这些文件基本上是可以在 Visual Studio 项目中加载的 .lib 文件。

我写了构建步骤,这里是link

【讨论】:

    猜你喜欢
    • 2013-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-26
    • 2013-05-15
    相关资源
    最近更新 更多