2013-04-22 59 views
7

我试图从ffmpeg使用一些函数,并且正在运行弹性链接器错误。下面是我所做的:未解决的外部尝试使用ffmpeg

  • 下载了最新的32位 “开发” 从http://ffmpeg.zeranoe.com/builds/建设(即ffmpeg的-20130418-混帐ee94362-Win32的DEV)
  • 创造了一个 “通用 - 空” 在C++项目的Visual Studio 2012高级
  • 添加了[FFMPEG]/lib文件夹到链接器 - >输入 - > “附加库目录”
  • 增加“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:在 函数引用_main

如何解决未解决的外部符号 “无效__cdecl av_register_all(无效)”(av_register_all @@ YAXXZ?)这个错误?

+0

的可能的复制[http://stackoverflow.com/q/7514249/845568](http ://stackoverflow.com/q/7514249/845568) – 2013-04-22 15:11:10

回答

22

当你使用C++,你需要extern "C"包围你的ffmpeg #include声明是这样的:

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

呃,我之前已经尝试过,并且它没有工作,可能是因为项目中存在其他错误。现在它的工作......谢谢。 – Asik 2013-04-22 15:11:34

+0

谢谢!我认为这导致它寻找符号的未修饰的“C”版本而不是装饰的C++符号? – Deanna 2015-05-21 22:32:29

+0

@Deanna是的,这是绝对正确的。我很高兴你找到了有用的答案。 – 2015-05-22 03:28:58

相关问题