QVideoFrame的许多构造函数中的1个的未定义引用

时间:2013-11-24 22:05:19

标签: c++ qt linker ffmpeg

尝试将FFMPeg AVFrame转换为QT QVideoFrame时,我遇到了一个奇怪的问题;

我正在尝试使用此构造函数

创建QVideoFrame
QVideoFrame(int bytes, const QSize &size, int bytesPerLine, PixelFormat format);

它编译得很好,但在链接我收到问题;

~myfile.cpp:130: undefined reference to `_imp___ZN11QVideoFrameC1EiRK5QSizeiNS_13AVPixelFormatE'
collect2.exe: error: ld returned 1 exit status

(因为这是一个链接器问题,我假设你不想要代码示例)。

我自己编译了QT 4.8.5使用mingw32以及QImage的其他构造函数(没有params和QVideoFrame param),我已经测试了编译和正确链接。从查看QT源代码来看,没有任何内容与此构造函数不同,因为它不包含在库中。

此时我正在尝试实现QAbstractVideoBuffer的扩展,因此我可以使用该构造函数,但是这比它应该更加困难&我很想知道为什么会出现这个问题。

由于

1 个答案:

答案 0 :(得分:0)

经过一天的讨论之后,我将问题追溯到包含导致问题的ffmpeg标题。通过放置ffmpeg头部包括在所有QT头部包括然后解除与QT类冲突的流浪#def之后,它现在编译!