【发布时间】:2011-02-02 15:39:42
【问题描述】:
我正在尝试对继承 QObject 的类进行单元测试;该类本身位于我的目录结构中的上一层。当我构建单元测试时,如果找不到类的 MOC 文件,我会得到标准的未解决错误:
test.obj:错误 LNK2001:未解析的外部符号“public:virtual void * __thiscall UnitToTest::qt_metacast(char const *)”(?qt_metacast@UnitToTest@@UAEPAXPBD@Z) + 2 个缺失的功能已创建 MOC 文件,但似乎没有链接。我已经在 SO、web 和 Qt 的文档中闲逛了很长一段时间,并且碰壁了。
如何让单元测试在链接中包含 MOC 文件?
====
我的项目文件非常简单:
模板 = 应用程序 目标 = 测试 DESTDIR = . 配置 += qtestlib 包含路径 += 。 .. 依赖路径 += 。 标题 += test.h 来源 += test.cpp ../UnitToTest.cpp stubs.cpp 定义 += UNIT_TEST我的目录结构和文件:
C:。 |单元测试.cpp | UnitToTest.h | \ - -测试 | test.cpp(为清楚起见删除了 Makefile) |测试.h | test.pro |存根.cpp | +---调试 | UnitToTest.obj |测试.obj |测试.pdb | moc_test.cpp | moc_test.obj |存根.obj编辑:附加信息
生成的Makefile.Debug显示moc文件丢失:
【问题讨论】:
标签: unit-testing qt