2012-05-08 3 views
0

Только что скачал https://qt.gitorious.org/~niandong/qt/niandongs-qttools/commits/qtmock, так как мне отчаянно нужна насмешка QNetworkAccessManager.Невозможно построить QtMock в Visual Studio

Я смог построить qtmock.pro в QtCreator 2.3.1 с помощью Qt 4.7.4. Все тесты проходили так, как они должны были, и я очень ушел!

Затем мне пришлось построить его с помощью визуальной студии, чтобы иметь возможность использовать библиотеки моего проекта и все его зависимости. Я использую Qt 4.8 здесь, в Visual Studio 2010 pro. Я импортировал основной qtmock.pro, и сначала я попытался создать базовый проект qtmock, который содержит только фреймворк (без тестов или чего-то еще). Он построил отлично, и у меня есть файл .lib и .dll. Затем я попытался построить qtnetworkstub.pro, где все макетные объекты для QNetwork, которые мне нужны для моего проекта. Ниже приведена моя командная строка для сборки:

/OUT:"......\lib\qtnetworkmock.dll" /NOLOGO /LIBPATH:"E:\QT\4.8.0\lib" /LIBPATH:"e:\QT\4.8.0\lib" /LIBPATH:"../../../lib" /DLL "../../../lib\qtmock.lib" "E:\QT\4.8.0\lib\QtTestd4.lib" "E:\QT\4.8.0\lib\QtCored4.lib" "kernel32.lib" "user32.lib" "gdi32.lib" "winspool.lib" "comdlg32.lib" "advapi32.lib" "shell32.lib" "ole32.lib" "oleaut32.lib" "uuid.lib" "odbc32.lib" "odbccp32.lib" /MANIFEST /ManifestFile:"Win32\qtnetworkmock.dll.intermediate.manifest" /ALLOWISOLATION /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /DEBUG /PDB:"E:.Qt.UnitTest\qtmock\lib\qtnetworkmock.pdb" /PGD:"E:\src\Qt.UnitTest\qtmock\lib\qtnetworkmock.pgd" /TLBID:1 /DYNAMICBASE /NXCOMPAT /MACHINE:X86 /ERRORREPORT:QUEUE

, и я использую testLib и Core.

Затем я получил следующее сообщение об ошибке: Linkin

Error 4 error LNK2019: unresolved external symbol "public: static struct QMetaObject const QAbstractSocket::staticMetaObject" (?staticMetaO[email protected]@@[email protected]@B) referenced in function "public: __thiscall QNetworkRequest::~QNetworkRequest(void)" ([email protected]@[email protected]) E:\src\Qt.UnitTest\qtmock\test\stublib\network\qnetworkrequest.obj qtnetworkstub 
Error 5 error LNK2001: unresolved external symbol "public: static struct QMetaObject const QTcpSocket::staticMetaObject" ([email protected]@@[email protected]@B) E:\src\Qt.UnitTest\qtmock\test\stublib\network\qnetworkreply.obj qtnetworkstub 
Error 6 error LNK2001: unresolved external symbol "public: static struct QMetaObject const QTcpSocket::staticMetaObject" ([email protected]@@[email protected]@B) E:\src\Qt.UnitTest\qtmock\test\stublib\network\qnetworkrequest.obj qtnetworkstub 
Error 7 error LNK2001: unresolved external symbol "public: static struct QMetaObject const QSslSocket::staticMetaObject" ([email protected]@@[email protected]@B) E:\src\Qt.UnitTest\qtmock\test\stublib\network\qnetworkreply.obj qtnetworkstub 
Error 8 error LNK2001: unresolved external symbol "public: static struct QMetaObject const QSslSocket::staticMetaObject" ([email protected]@@[email protected]@B) E:\src\Qt.UnitTest\qtmock\test\stublib\network\qnetworkrequest.obj qtnetworkstub 
Error 1 error LNK2001: unresolved external symbol "public: static struct QMetaObject const QAbstractSocket::staticMetaObject" ([email protected]@@[email protected]@B) E:\src\Qt.UnitTest\qtmock\test\stublib\network\qnetworkaccessmanager.obj qtnetworkstub 
Error 2 error LNK2001: unresolved external symbol "public: static struct QMetaObject const QAbstractSocket::staticMetaObject" ([email protected]@@[email protected]@B) E:\src\Qt.UnitTest\qtmock\test\stublib\network\qnetworkproxy.obj qtnetworkstub 
Error 3 error LNK2001: unresolved external symbol "public: static struct QMetaObject const QAbstractSocket::staticMetaObject" ([email protected]@@[email protected]@B) E:\src\Qt.UnitTest\qtmock\test\stublib\network\qnetworkreply.obj qtnetworkstub 
Error 9 error LNK1120: 3 unresolved externals E:\src\Qt.UnitTest\qtmock\lib\\qtnetworkmock.dll qtnetworkstub 

Дело в том, что я не получаю: Я не использую любой из этих объектов, и они Арент refered где-нибудь в этом проекте. Все они наследуются от QIODevice, но я не уверен, насколько это поможет.

Я extremy застрял, и я был бы признателен за любую помощь, так как я действительно хочу, чтобы использовать эту структуру (это, кажется, действительно отлично подходит для модульного тестирования!)

ответ

0

Видимо, это проблема с QTMock и Qt 4.8 и не имеет ничего делать с визуальной студией. Текущая доступная сборка QtMock не работает с 4.8 (всего 4,7 и, возможно, ниже), но будет исправлена ​​очень скоро.

Смежные вопросы