This question already has answers here:
What is an undefined reference/unresolved external symbol error and how do I fix it?
(32个答案)
5年前关闭。
我在同一个解决方案中有一个带有源代码的项目和一个TestProject。
在TestProject中使用GTest框架的测试文件从主项目获得了头文件
在第一个GTest的主体中,我实例化了
此实例有什么问题?
编辑
我链接到包含Composite类中私有方法的实现的库。另外,我尝试另类#inlcude .cpp作为此类的源代码。两种解决方案都不能解决问题。
编辑-问题
难道是看不到包含Composite类及其父类(定义了
我尝试在“测试项目”属性的附加目录中添加包含moc文件的文件夹。这也不起作用。
(32个答案)
5年前关闭。
我在同一个解决方案中有一个带有源代码的项目和一个TestProject。
在TestProject中使用GTest框架的测试文件从主项目获得了头文件
#include
的Composite.h
。在第一个GTest的主体中,我实例化了
Composite.h
中声明的Composite类。该行给出了编译错误LNK2001:Composite类的每个私有方法上的未解析的外部符号。myTest.cpp
文件中的代码如下所示#include "Composite.h"
TEST(testComposite, testCase1)
{
Composite c; // error LNK2001
// my test here;
}
此实例有什么问题?
编辑
我链接到包含Composite类中私有方法的实现的库。另外,我尝试另类#inlcude .cpp作为此类的源代码。两种解决方案都不能解决问题。
编辑-问题
难道是看不到包含Composite类及其父类(定义了
Q_OBJECT
)的moc文件的文件夹吗?我尝试在“测试项目”属性的附加目录中添加包含moc文件的文件夹。这也不起作用。
最佳答案
实例化应该没有错。我假设有一个Composite.cpp,其中包含您丢失或未解析的代码。
您将需要将此Composite.cpp添加到您的项目中或将您的应用程序链接到包含Composite.cpp的库
关于c++ - LNK2001关于所有私有(private)方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22858170/
10-08 22:22