未解决的外部尝试使用ffmpeg

时间:2013-04-22 14:55:40

标签: c++ linker ffmpeg

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

  • http://ffmpeg.zeranoe.com/builds/下载最新的32位“Dev”版本(即ffmpeg-20130418-git-ee94362-win32-dev)
  • 在Visual Studio 2012 Premium
  • 中创建了“常规 - 空”C ++项目
  • 将[ffmpeg] / lib文件夹添加到Linker - >输入 - > “其他图书馆馆藏”
  • 添加了“swscale.lib; avutil.lib; avformat.lib; avdevice.lib; avcodec.lib;”链接器 - >输入 - > “附加依赖”
  • 在C ++下添加了以下内容 - >一般 - >其他包含目录:
    • [FFMPEG] /包括
    • [FFMPEG] /包含/ libswscale
    • [FFMPEG] /包含/了libavformat

这是我的main.cpp:

#include "avformat.h"

int main()
{
    av_register_all();
} 

这失败了:

  

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

如何解决此错误?

1 个答案:

答案 0 :(得分:25)

当您使用C ++时,您需要使用#include包围ffmpeg extern "C"语句,如下所示:

extern "C"
{
    #include "avformat.h"
}