2012-05-08 7 views
0

https://qt.gitorious.org/~niandong/qt/niandongs-qttools/commits/qtmock을 다운로드 한 이유는 QNetworkAccessManager를 조롱해야하기 때문입니다.Visual Studio에서 QtMock을 빌드 할 수 없습니다.

Qt 4.7.4를 사용하여 QtCreator 2.3.1에서 qtmock.pro를 빌드 할 수있었습니다. 모든 테스트가 끝나면 끝났습니다.

그럼 내 프로젝트의 라이브러리와 모든 의존성을 사용할 수 있도록 Visual Studio로 빌드해야했습니다. 저는 Visual Studio 2010 pro에서 Qt 4.8을 사용하고 있습니다. 주요 qtmock.pro를 가져 왔고 먼저 프레임 워크 만 포함하는 기본 qtmock 프로젝트를 만들려고했습니다 (테스트 또는 기타 사항 없음). 그것은 잘 지어졌고 .lib와 .dll 파일이 있습니다. 그런 다음 QNetwork의 모든 모의 객체가 내 프로젝트에 필요한 qtnetworkstub.pro를 만들려고했습니다. 다음은 빌드를위한 내 명령 행입니다 :

/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만을 사용하고 있습니다.

Error 4 error LNK2019: unresolved external symbol "public: static struct QMetaObject const QAbstractSocket::staticMetaObject" ([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 

내가 얻을 해달라고 건은 다음과 같습니다 :

나는 다음 린킨 오류가 발생했습니다 나는 이러한 개체 중 하나를 사용하지 않는 그들이 어디서든 해당 프로젝트에 대해 참조이 arent. 그들 모두는 QIODevice를 상속 받지만, 얼마나 도움이 될지는 확신 할 수 없습니다.

내가 extremy 붙어있어 나는 정말이 프레임 워크를 사용하기 원하기 때문에 내가 어떤 도움을 주셔서 감사합니다 것입니다 (단위 테스트를 위해 정말 좋은 것 같다!)

답변

0

은 분명히이 QTMock와 Qt를 4.8에 문제이고 무관 비주얼 스튜디오와 관련있다. QtMock의 현재 사용 가능한 빌드는 4.8 (4.7 및 그 이하)에서 작동하지 않지만 곧 수정 될 것입니다.

관련 문제