在 Visual Studio 2010 中链接 libavformat

Linking libavformat in Visual Studio 2010

本文关键字:链接 libavformat 2010 Visual Studio      更新时间:2023-10-16

我正在尝试围绕libavformat构建一些视频读取代码。在此处获取编译的 DLL 和.lib文件后,我开始构建我的代码,即使我已经在提供的 .lib 文件中链接,链接器也找不到任何 libavformat 符号。

检查带有dumpbin -headers libavformat.lib会发现它导出带有下划线前缀的所需函数。例如,虽然我想调用avformat_open_input,但 .lib 文件给出了_avformat_open_input .

为什么

会这样,为什么我不能链接预编译的 dll?

您需要

执行以下所有任务才能将libavMSVC++一起使用。第一去泽拉诺

  1. 下载Shared版本,从文件夹中复制所有.dll文件bin并将它们粘贴到将生成exe的输出目录中。
  2. 下载Developer版本,从文件夹中复制所有.lib文件lib并将它们粘贴到您的主c ++文件所在的位置(例如 Folder-1Folder-2 Folder-1在哪里有.sln文件,所以你必须把.lib文件放在Folder-2
  3. 从您在步骤 2 中
  4. 下载Developer版本中复制include文件夹中的所有目录并将它们粘贴到文件夹 2 中(请参阅步骤 2 中有关文件夹 2 的详细信息)
  5. 下载inttypes.h和stdint.h,将其保存在此位置C:Program FilesMicrosoft Visual Studio 10.0VCinclude文件夹中。
  6. 若要包含头文件,请使用以下语法

您必须使用此extern libav因为它是一个C库。

extern "C" {
    #include "libavcodec/avcodec.h"
    #include "libavdevice/avdevice.h"
    #include "libavfilter/avfilter.h"
    #include "libavformat/avformat.h"
    #include "libavutil/avutil.h"
}

获取 32 位库,您应该没问题:)您的应用程序平台必须与使用的库匹配(反之亦然)。

将其编译为 .lib 静态库怎么样?