1
我想單元測試一個繼承QObject的類;該類本身在我的目錄結構中位於一個級別。當我建立了單元測試,我得到了標準的懸而未決的錯誤,如果一個類的MOC文件無法找到:創建在Qt單元測試中連接不良 - 缺少到moc文件的鏈接?
test.obj : error LNK2001: unresolved external symbol "public: virtual void * __thiscall UnitToTest::qt_metacast(char const *)" ([email protected]@@[email protected]) + 2 missing functions
的MOC文件,但似乎不被鏈接。我一直在圍繞着SO,網絡和Qt的文檔探索一段時間,並且遇到了困難。
如何獲得單元測試以將MOC文件包含在鏈接中?
====
我的項目文件是死的簡單:
TEMPLATE = app TARGET = test DESTDIR = . CONFIG += qtestlib INCLUDEPATH += . .. DEPENDPATH += . HEADERS += test.h SOURCES += test.cpp ../UnitToTest.cpp stubs.cpp DEFINES += UNIT_TEST
我的目錄結構和文件:
C:. | UnitToTest.cpp | UnitToTest.h | \---test | test.cpp (Makefiles removed for clarity) | test.h | test.pro | stubs.cpp | +---debug | UnitToTest.obj | test.obj | test.pdb | moc_test.cpp | moc_test.obj | stubs.obj
編輯:信息
一般ated Makefile.Debug
顯示了MOC文件丟失:
SOURCES = test.cpp \ ..\test.cpp \ stubs.cpp debug\moc_test.cpp OBJECTS = debug\test.obj \ debug\UnitToTest.obj \ debug\stubs.obj \ debug\moc_test.obj
哇。令人煩惱的簡單;就像我認爲的那樣。 – dwj 2010-03-30 20:50:37
這可能爲我節省了很多挫折。謝謝! – 2014-12-02 12:32:47