0

出于某种原因,每当我尝试使用示例代码时,我的编译器都拒绝合作。

我使用的示例代码来自这里:http: //qt-project.org/doc/qt-4.8/multimedia-videowidget.html;我目前只使用了 VideoWidgetSurface 类。

据我所知,我的代码与示例的代码 100% 相同,并且我没有编码错误。

但是,编译后我收到:

1>moc_VideoWidgetSurface.obj : error LNK2019: unresolved external symbol "__declspec(dllimport)       
public: virtual void * __thiscall QAbstractVideoSurface::qt_metacast(char const *)" (__imp_?
qt_metacast@QAbstractVideoSurface@@UAEPAXPBD@Z) referenced in function "public: virtual void * 
__thiscall VideoWidgetSurface::qt_metacast(char const *)" (?
qt_metacast@VideoWidgetSurface@@UAEPAXPBD@Z)
1>moc_VideoWidgetSurface.obj : error LNK2019: unresolved external symbol "__declspec(dllimport)  
public: virtual int __thiscall QAbstractVideoSurface::qt_metacall(enum QMetaObject::Call,int,void * 
*)" (__imp_?qt_metacall@QAbstractVideoSurface@@UAEHW4Call@QMetaObject@@HPAPAX@Z) referenced in 
function "public: virtual int __thiscall VideoWidgetSurface::qt_metacall(enum 
QMetaObject::Call,int,void * *)"(?qt_metacall@VideoWidgetSurface@@UAEHW4Call@QMetaObject@@HPAPAX@Z)

. . . .

1>VideoWidgetSurface.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: 
class QSize __thiscall QVideoSurfaceFormat::frameSize(void)const " (__imp_?
frameSize@QVideoSurfaceFormat@@QBE?AVQSize@@XZ) referenced in function "public: bool __thiscall 
VideoWidgetSurface::isFormatSupported(class QVideoSurfaceFormat const &,class QVideoSurfaceFormat 
*)const " (?isFormatSupported@VideoWidgetSurface@@QBE_NABVQVideoSurfaceFormat@@PAV2@@Z)
1>VideoWidgetSurface.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: 
static enum QImage::Format __cdecl QVideoFrame::imageFormatFromPixelFormat(enum 
QVideoFrame::PixelFormat)" (__imp_?imageFormatFromPixelFormat@QVideoFrame@@SA?
AW4Format@QImage@@W4PixelFormat@1@@Z) referenced in function "public: bool __thiscall 
VideoWidgetSurface::isFormatSupported(class QVideoSurfaceFormat const &,class QVideoSurfaceFormat 
*)const " (?isFormatSupported@VideoWidgetSurface@@QBE_NABVQVideoSurfaceFormat@@PAV2@@Z)

. . . .

1>C:\Users\Owner\documents\visual studio 2010\Projects\ParticleTracker\Debug\ParticleTracker.exe : fatal error LNK1120: 30 unresolved externals

[删除错误,因为有很多]

========== 构建:0 成功,1 失败,0 最新,0 跳过 ==========

我不完全明白为什么我会收到此错误。到目前为止,我在使用 Qt 时遇到的问题很少,并且已经成功运行了我的程序(在 Visual Studio '10 中,不使用 qmake)。

我仔细检查了我是否已链接到附加依赖项部分中所有可能的 .lib 文件,并且我没有遗漏任何文件。

似乎此错误仅存在于多媒体模块。我搜索了现有的多媒体 .lib 但找不到任何内容。

我尝试了以下 cmd 命令:

moc -I"%QTDIR%\include" -I"%QTDIR%\include\QtCore" -I"%QTDIR%\include\QtGui" -I"%QTDIR%\include\QtMultimedia" -omoc_VideoWidgetSurface.cpp VideoWidgetSurface.h

但它没有工作,我仍然收到错误。

任何帮助深表感谢。如果您想查看更多我的代码或我的链接/包含,我也会分享这些。谢谢!

4

1 回答 1

0

You need to link with the multimedia module. Just like you link with qtgui4.dll, qtcore4.lib, etc., you must link with qtmultimedia4.lib. That's all.

于 2012-06-26T23:23:25.387 回答