出于某种原因,每当我尝试使用示例代码时,我的编译器都拒绝合作。
我使用的示例代码来自这里: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
但它没有工作,我仍然收到错误。
任何帮助深表感谢。如果您想查看更多我的代码或我的链接/包含,我也会分享这些。谢谢!