在Visual Studio 2010中链接libavformat

时间:2012-07-02 22:11:27

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

我正在尝试围绕libavformat构建一些视频阅读代码。获取已编译的DLL和.lib文件here后,我将构建我的代码,并且链接器找不到任何libavformat符号,即使我已在提供的{{1}中链接文件。

使用.lib检查libavformat.lib表明它使用下划线前缀导出所需的函数。例如,虽然我想调用dumpbin -headers,但.lib文件会提供avformat_open_input

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

3 个答案:

答案 0 :(得分:7)

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

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

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

如何将其编译为.lib静态库?