Qt C ++ ffmpeg找不到库

时间:2013-06-07 01:27:39

标签: c++ qt ffmpeg

我在Windows上使用Qt 5.0.2和Mingw 4.7。

我正在开发一个c ++程序,我正在尝试获取视频文件的持续时间。我找到了ffmpeg。现在我尝试编译一个简单的程序,但我认为它失败了库。我试图包括共享和dev,但它们都会失败。 (Zeranoe FFmpeg builds

这是我的专业档案:

TEMPLATE = app
CONFIG += console
CONFIG -= app_bundle
CONFIG -= qt

SOURCES += main.cpp

INCLUDEPATH += C:\programming\ffmpeg-20130606-git--win32-shared\bin

LIBS += -LC:\programming\ffmpeg-20130606-git--win32-shared\bin -lavcodec-55.dll -     lavformat-55.dll -lavutil-52.dll

我得到的错误如下:

“: - 1:错误:找不到-lavcodec-55.dll”

“: - 1:错误:找不到-lavformat-55.dll”

我也试过了:

INCLUDEPATH += C:\programming\ffmpeg-20130606-git--win32-dev\include
INCLUDEPATH += C:\programming\ffmpeg-20130606-git--win32-dev\lib

LIBS += -LC:\programming\ffmpeg-20130606-git--win32-dev\lib -lavcodec -lavformat -lavutil

LIBS += -LC:\programming\ffmpeg-20130606-git--win32-dev\lib -llibavcodec.dll.a -llibavformat.dll.a -llibavutil.dll.a

这里给出错误“在启动程序退出时使用代码0x0000135”

我甚至试图单独包含每个库。但没有结果......

这是我的主要文件:

#include <iostream>
using namespace std;
extern "C" {
  #include <libavcodec/avcodec.h>    // required headers
  #include <libavformat/avformat.h>
}
int main(int argc, char**argv) {
   av_register_all();             // offending library call
   return 0;
}

一个简单的程序,因为它将有两个结果:

  1. 如果我调用'av_register_all()'
  2. ,程序会运行但崩溃
  3. 它只是告诉我他找不到图书馆。
  4. 有人能告诉我这是错的吗?或者甚至给我一个提示?我真的找不到很多关于这个的好文档。

    提前致谢!

1 个答案:

答案 0 :(得分:1)

配置PRO文件,如下所示:

INCLUDEPATH += C:\programming\ffmpeg-20130606-git--win32-dev\include

LIBS += -LC:\programming\ffmpeg-20130606-git--win32-dev\lib
LIBS += -lavcodec -lavformat -lavutil

然后,构建项目,将所有dll库从C:\programming\ffmpeg-20130606-git--win32-shared\bin复制到exe输出路径并运行应用程序。

UPD

也许您需要从Qt\5.0.2\mingw47_32\bin\复制以下一些库:

libgcc_s_sjlj-1.dll
libstdc++-6.dll
libwinpthread-1.dll