运行时错误链接在qt创build者的ffmpeg库

我在这里很新,但我听说如果你想要一个问题的答案,stackoverflow是要求它的地方。 所以我希望我的问题不是微不足道的,每个人都会因为缺乏研究而感到烦恼(我已经试了两天google了,D =没有进展!)我也在Qt论坛上问过这个问题,但是我想我也会在这里问。

所以…

在过去的几天里,我一直在摆弄opengl之类的东西,试图写一个video播放器。

但是,当我尝试导入ffmpeg库(avcodec,avformat,avutils等)时,运行时发生错误(程序编译正常)。 编译和运行在debugging模式下时,错误消息只给我一个内存地址和错误代码135(找不到DLL)。

这个错误发生时,我从我的代码(例如av_register_all())中的这些库中包含一个函数,并且不pipe函数是否被实际调用。

所以我想连接这些库时我做错了什么。 我目前使用的是:Windows vista(32位),基于Qt 4.7.4(32位)的Qt Creator 2.4.1,Zeranoe的FFmpeg build git-3233ad4(2012-06-30)

我的.pro文件包含:

QT += core gui opengl TARGET = test TEMPLATE = app SOURCES += main.cpp\ mainwindow.cpp \ glwidget.cpp HEADERS += mainwindow.h \ glwidget.h \ FORMS += mainwindow.ui LIBS += -L"$$_PRO_FILE_PWD_/libraries/ffmpeg/libs/" -lavcodec -lavformat -lavutil INCLUDEPATH += libraries/ffmpeg/includes 

我已经尝试了许多变化的LIBS + =行,并检查了我的文件path多次。 但是,DLL中找不到错误发生在所有这些变化=(。

在做这些事情时,我有没有忘记?

在此先感谢> <,(年轻而天真的)有抱负的开发者

Solutions Collecting From Web of "运行时错误链接在qt创build者的ffmpeg库"

由于错误提示没有找到DLL,并且在包含ffmpeg函数时发生,这意味着ffmpeg库是动态链接的(即它们是DLL)。 这意味着,为了您的exe工作,它需要加载ffmpeg DLL。 您需要将这些DLL与您的exe文件放在同一个目录中。 在那里复制它们。 使用依赖步行者来看看你需要复制哪些DLL,但他们应该看起来像avcodec-52.dll, avdevice-52.dll, avformat-52.dll, avutil-49.dll ,也许更多,取决于你构建的ffmpeg。