c++ - Qt C++ ffmpeg 找不到库

标签 c++ qt ffmpeg

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

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

这是我的 pro 文件:

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;
}

像这样简单的程序会产生 2 个结果:

  1. 如果我调用“av_register_all()”程序运行但崩溃
  2. 它只是告诉我他找不到图书馆。

有人能告诉我我做错了什么吗?甚至给我提示?我真的找不到很多关于这方面的好文档。

提前致谢!

最佳答案

如下所示配置 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输出路径并运行应用程序。

更新

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

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

关于c++ - Qt C++ ffmpeg 找不到库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16974883/

相关文章:

c++ - 如何将 C++ unsigned char [] 传递给 Tcl bytearray?

c++ - 调用 Qt 的 setui 方法后是否应该检查空指针?

c++ - QThread::quit() 是立即结束线程还是等到返回事件循环?

Qt:在数字字符串上使用 QSortFilterProxyModel 并获取错误的列文本时排序错误

iphone - 将 iPhone 摄像头直播到媒体服务器的最佳方式是什么?

c++ - C++20概念中 "equal"的概念

c++ - malloc.c :2451: sYSMALLOc: Assertion . ..失败

c++ - 在构建库之前让 CMake 执行项目中的目标

audio - FFmpeg - 如何设置输出样本大小

android - 稍后如何设置视频文件的起点