项目由以下类组成(省略了其他功能):
// MyClass.h
class MyClass {
public:
virtual void print();
};
// MyClass.cpp
#include "stdafx.h"
#include "MyClass.h"
void MyClass::print() {
// empty
}
在另一个项目中,一个类派生自MyClass
。 print
功能不会被覆盖。在编译之后的链接步骤中,无法找到函数print
的定义("未解析的外部符号"错误)。我该如何解决这个问题?项目中引用了MyClass.h
和MyClass.cpp
的项目。
编辑:开发环境是Win10 x64上的VS 2015。如果我删除关键字virtual
或将MyClass.h和MyClass.cpp移动到另一个项目,则错误不再发生。
编辑2:两个项目都是动态库(DLL)。
答案 0 :(得分:0)
包含MyClass.cpp
的项目在构建时将生成.lib
文件。必须将该库文件添加到另一个项目中,以便可以将其链接到,告诉项目它可以在其他DLL中找到该代码。