我有一个带有源代码的项目,以及一个位于同一解决方案中的 TestProject。
在TestProject 中使用GTest 框架的测试文件已经从主项目中获得了一个#include
头文件。Composite.h
在第一个 GTest 的主体中,我实例化了在Composite.h
. 这一行给出了编译错误 LNK2001:复合类的每个私有方法上的未解析外部符号。
文件中的代码myTest.cpp
如下所示
#include "Composite.h"
TEST(testComposite, testCase1)
{
Composite c; // error LNK2001
// my test here;
}
这个实例化有什么问题?
编辑
我链接到包含复合类中私有方法实现的库。另外,我尝试替代#inlcude .cpp 获取此类的源代码。任何一种解决方案都不能解决问题。
编辑——问题
这可能是看不到包含复合类及其父类(Q_OBJECT
已定义)的 moc 文件的文件夹吗?
我尝试在测试项目属性的附加目录中添加包含 moc 文件的文件夹。这也不起作用。