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