8

我正在尝试使用 ffmpeg 中的一些功能,并且遇到了弹性链接器错误。这是我所做的:

  • 从http://ffmpeg.zeranoe.com/builds/下载了最新的 32 位“Dev”构建(即 ffmpeg-20130418-git-ee94362-win32-dev)
  • 在 Visual Studio 2012 Premium 中创建了一个“General - empty”C++ 项目
  • 将 [ffmpeg]/lib 文件夹添加到 Linker -> Input -> "Additional Library Directories"
  • 添加了“swscale.lib;avutil.lib;avformat.lib;avdevice.lib;avcodec.lib;” 到链接器->输入->“附加依赖项”
  • 在 C++ -> 常规 -> 附加包含目录下添加了以下内容:
    • [ffmpeg]/包括
    • [ffmpeg]/include/libswscale
    • [ffmpeg]/include/libavformat

这是我的 main.cpp:

#include "avformat.h"

int main()
{
    av_register_all();
} 

这失败了:

错误 LNK2019:函数 _main 中引用的未解析的外部符号“void __cdecl av_register_all(void)”(?av_register_all@@YAXXZ)

我该如何解决这个错误?

4

1 回答 1

37

当您使用 C++ 时,您需要将您的 ffmpeg#include语句括起来,extern "C"如下所示:

extern "C"
{
    #include "avformat.h"
}
于 2013-04-22T15:00:15.403 回答