c++ - 在 Visual Studio 2010 中链接 libavformat

标签 c++ visual-studio-2010 visual-c++ ffmpeg libavformat

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

使用 dumpbin -headers 检查 libavformat.lib 显示它导出带有下划线前缀的所需函数。例如,当我想调用 avformat_open_input 时,.lib 文件给出了 _avformat_open_input

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

最佳答案

您需要执行以下所有任务才能将 libavMSVC++ 一起使用。首先转到 Zeranoe

  1. 下载 Shared 版本,从 .dll 文件夹中复制所有 bin 文件,并将它们粘贴到将生成 exe 的输出目录中。
  2. 下载 Developer 版本,从 .lib 文件夹中复制所有 lib 文件并将它们粘贴到您的主 c++ 文件所在的位置(例如 Folder-1\Folder-2,其中 Folder-1 包含 .sln 文件,因此您必须将 .lib4 文件放入 67
  3. 从您在步骤 2 中下载的 Folder-2 版本复制 Developer 文件夹中的所有目录并将它们粘贴到 Folder-2(请参阅步骤 2 中有关 Folder-2 的详细信息)
  4. 下载 inttypes.hstdint.h ,将其保存在此位置 include 文件夹中。
  5. 要包含头文件,请使用以下语法

你必须使用这个 C:\Program Files\Microsoft Visual Studio 10.0\VC\include\ 因为 extern 是一个 libav 库。

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

关于c++ - 在 Visual Studio 2010 中链接 libavformat,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11301864/

相关文章:

c++ - Tensorflow DrawBoundingBoxes C++

c++ - CMake 从公共(public)源代码树生成多个项目的方法

c++ - 专门化模板模板参数的麻烦

c# - 在 Visual Studio 中为表生成 C# 类代码

c++ - 关于设置 set_terminate 函数

c++ - 将 Mat 压缩成 Jpeg 并将结果存入内存

visual-studio-2010 - 如何快速确定 Visual Studio 2010 字体和颜色显示项名称?

visual-studio-2010 - Visual Studio要编译目录

c - 使用 MSVC 从命令行构建 DLL(无入口点)

c++ - 如何使用另一个 DLL 为 Qt 制作第三方插件?