尝试将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
的扩展,因此我可以使用该构造函数,但是这比它应该更加困难&我很想知道为什么会出现这个问题。
由于
答案 0 :(得分:0)
经过一天的讨论之后,我将问题追溯到包含导致问题的ffmpeg标题。通过放置ffmpeg头部包括在所有QT头部包括然后解除与QT类冲突的流浪#def之后,它现在编译!