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