何らかの理由で、サンプル コードを使用しようとすると、コンパイラが協力を拒否します。
私が使用しているサンプル コードは、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 で発生した問題は最小限であり、プログラムを正常に実行できました (qmake を使用せずに Visual Studio '10 で)。
「追加の依存関係」セクションにあるすべての .lib ファイルにリンクしていることを再確認しましたが、欠落しているものはありません。
このエラーはマルチメディア モジュールにのみ存在するようです。既存のマルチメディア .lib を検索しましたが、何も見つかりませんでした。
次のcmdコマンドを試しました:
moc -I"%QTDIR%\include" -I"%QTDIR%\include\QtCore" -I"%QTDIR%\include\QtGui" -I"%QTDIR%\include\QtMultimedia" -omoc_VideoWidgetSurface.cpp VideoWidgetSurface.h
しかし、うまくいかず、まだエラーが発生します。
どんな助けでも大歓迎です。私のコードやリンク/インクルードをもっと見たい場合は、それらも共有します。ありがとうございました!