c++ - LNK2001 关于所有私有(private)方法

标签 c++ qt visual-c++ lnk2001

<分区>

我有一个带有源代码的项目,以及一个在同一个解决方案中的 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 文件的文件夹。这也不起作用。

最佳答案

实例化应该没有问题。我假设有一个 Composite.cpp 包含您丢失或未解析的代码。

您需要将此 Composite.cpp 添加到您的项目中或将您的应用程序链接到包含 Composite.cpp 的库

关于c++ - LNK2001 关于所有私有(private)方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22858170/

相关文章:

c++ - 如何确定 QString 中的特定字符是字母还是标点符号?

c++ - QList 通过初始化列表初始化

c++ - WriteFile 函数返回成功但无法查看文件系统中的文件

c++ - 在成员函数中我得到错误 "invalid use of undefined type ' struct (name )' - forward declaration of ' struct (name )' "

c++ - 直接使用 Eclipse CDT 构建共享库

qt - 在 Qt 中使用 hadoop

c++ - 消息映射宏

c++ - 与模板类型相关的编译时错误发生在理论上不会发生的地方

c++ YUYV 422 水平和垂直翻转

c++ - 使用 srand() 在随机游走中出现蝴蝶图案,为什么?