Qt 链接器错误与ffmpeg

Qt 链接器错误与ffmpeg,qt,linker,ffmpeg,Qt,Linker,Ffmpeg,我正在尝试使用库构建一个非常简单的Qt程序 目前我只想打开和关闭一个视频文件 这是我的项目文件: QT += core gui TARGET = avtest01 TEMPLATE = app INCLUDEPATH += /usr/local/include LIBS += -L/usr/local/lib -lavformat SOURCES += main.cpp 我的代码是: #include <QDebug> extern "C" { #include <l

我正在尝试使用库构建一个非常简单的Qt程序

目前我只想打开和关闭一个视频文件

这是我的项目文件:

QT    += core gui
TARGET = avtest01
TEMPLATE = app
INCLUDEPATH += /usr/local/include
LIBS += -L/usr/local/lib -lavformat
SOURCES += main.cpp
我的代码是:

#include <QDebug>

extern "C" {
#include <libavformat/avformat.h>
}

int main(int argc, char *argv[])
{
    if(argc > 1)
    {
        AVFormatContext *format_context;
        qDebug() << argv[1];
        if(avformat_open_input(&format_context, argv[1], NULL, NULL) == 0)
        {
            qDebug() << "open";
            avformat_close_input(&format_context);
        }
        else
            qDebug() << "error opening " << argv[1];
    }    
    return 0;
}

我在MacOS上使用Qt5.1.0。

在我添加了
av\u register\u all()之后,您的代码对我有效到主目录

我猜你已经编译了32位的avformat。您可以通过在终端中运行
文件/usr/local/lib/libavformat.dylib
进行确认

输出应该如下所示:

/usr/local/lib/libavformat.dylib: Mach-O 64-bit dynamically linked shared library x86_64

我不得不链接其他库,但我认为这是由于我(来自)MartinDelille的ffmpeg编译,你做了哪些不同的工作来为MacOS构建ffmpeg?我使用的是来自的脚本的静态构建。在调用
avformat\u open\u input
时,我遇到了相同的链接器错误,只需使用home brew在osx上安装即可。请不要发表评论,投票否决?我在调用
avformat\u open\u input
时也遇到了相同的问题。你做了什么来解决这个问题?您为MacOS构建FFmpeg的方式有多不同?
/usr/local/lib/libavformat.dylib: Mach-O 64-bit dynamically linked shared library x86_64