2012-06-26 6 views
0

По какой-то причине, когда я пытаюсь использовать пример кода, мой компилятор отказывается сотрудничать.Qt LNK2019, LNK2001, LNK1120 Ошибки с QT Multimedia [Visual Studio Express '10]

Образец кода, который я использую, исходит отсюда: 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_? 
[email protected]@@[email protected]) referenced in function "public: virtual void * 
__thiscall VideoWidgetSurface::qt_metacast(char const *)" (? 
[email protected]@@[email protected]) 
1>moc_VideoWidgetSurface.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) 
public: virtual int __thiscall QAbstractVideoSurface::qt_metacall(enum QMetaObject::Call,int,void * 
*)" ([email protected]@@[email protected]@@[email protected]) referenced in 
function "public: virtual int __thiscall VideoWidgetSurface::qt_metacall(enum 
QMetaObject::Call,int,void * *)"([email protected]@@[email protected]@@[email protected]) 

. , , ,

1>VideoWidgetSurface.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: 
class QSize __thiscall QVideoSurfaceFormat::frameSize(void)const " (__imp_? 
[email protected]@@[email protected]@XZ) referenced in function "public: bool __thiscall 
VideoWidgetSurface::isFormatSupported(class QVideoSurfaceFormat const &,class QVideoSurfaceFormat 
*)const " ([email protected]@@[email protected]@[email protected]@Z) 
1>VideoWidgetSurface.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: 
static enum QImage::Format __cdecl QVideoFrame::imageFormatFromPixelFormat(enum 
QVideoFrame::PixelFormat)" ([email protected]@@SA? 
[email protected]@@[email protected]@@Z) referenced in function "public: bool __thiscall 
VideoWidgetSurface::isFormatSupported(class QVideoSurfaceFormat const &,class QVideoSurfaceFormat 
*)const " ([email protected]@@[email protected]@[email protected]@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-файлами в разделе Дополнительные зависимости, и я не пропущу ни одного.

Похоже, что эта ошибка существует только для модуля мультимедиа. Я искал существующий Multimedia .lib, но не смог найти.

Я попытался следующую команду: CMD

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

Но он не смог работать, и я все еще получаю ошибки.

Любая помощь очень ценится. Если вы хотите увидеть больше моего кода или моих ссылок/включений, я поделюсь с ними. Спасибо!

ответ

0

Вам необходимо установить связь с мультимедийным модулем. Так же, как вы ссылаетесь на qtgui4.dll, qtcore4.lib и т. Д., Вы должны связаться с qtmultimedia4.lib. Это все.

+0

Welp ... У меня этого нет! Поиск в моей папке% QTDIR% \ lib, и все, что я вижу, это other.dll и .libs. :/ –

+0

Тогда вы его не строили. –

+0

Ха-ха, я делаю повторную загрузку и повторное построение Qt. Это должно исправить все мои проблемы^u ^ –