错误 LNK2019:未解析的外部符号"公共:__thiscall
error LNK2019: unresolved external symbol "public: __thiscall
我有一个类似的类
template <class T>
class LinkedListItem
{
public:
LinkedListItem(T value);
LinkedListItem(const LinkedListItem<T>& rhs);
T getValue(void);
LinkedListItem<T>& getNext(void);
void setNext(LinkedListItem<T>& next);
LinkedListItem<T>& operator=(const LinkedListItem<T>& rhs);
~LinkedListItem();
private:
T _value;
LinkedListItem& _next;
};
我正在尝试写一个类似的单元测试
TEST_CLASS(LinkedListUnitTests)
{
public:
TEST_METHOD(Add_to_An_Empty_Linked_List)
{
LinkedListItem<int> item(1);
}
//private:
};
当我试图构建上面的代码时,我得到了一个丑陋的错误-
错误LNK2019:未解析的外部符号"public:__thiscall cpp::libraries::datastructures:LinkedListItem::LinkedListItem(int)"(??0$LinkedListItem@H@datastructures@libraries@cpp@@QAE@H@Z) 在函数"public:void __thiscall CppLibrariesTests:LinkedListUnitTests:Add_to_An_Empty_Linked_List(void)"中引用(?Add_to_An_Empty_Linked_List@LinkedListUnitTests@CppLibrariesTests@@QAEXXZ)
我正在使用Visual Studio 2012。
有趣的是,如果我像下面这样在单元测试类中添加模板,编译错误就会消失,但测试没有被发现,我无法运行它们。
template<class T>
TEST_CLASS(LinkedListUnitTests){..}
我试着在很长一段时间后学习C++,所以如果我做了一些非常愚蠢的事情,我不会感到惊讶。有什么想法吗?
模板必须以内联方式实现。编译器的第二次传递无法重新使用具有实现的CPP文件。或者,您还需要#包括CPP文件。
请参阅本文
相关文章:
- c++库的公共头文件中应该包含什么
- 在C++中,将大的无符号浮点数四舍五入为整数的最佳方法是什么
- 将公共但非静态的成员函数与ALGLIB集成
- 有符号的int和int-有没有一种方法可以在C++中区分它们
- LNK2019未解析的外部符号"公共:__thiscall
- 如何修复"未解析的外部符号"公共:void__thiscall canoid::getinput(void)"(?Getinput@Canoid@@QAEXXZ) 在函数 _main C++ 中引用
- C 未解决的外部符号(公共静态INT)
- main.obj : 错误 LNK2019: 未解析的外部符号 公共: __cdecl.
- 静态地将私有库链接到公共库以隐藏符号
- 未解析的外部符号"公共:__thiscall
- 错误 LNK2019:未解析的外部符号"公共:__thiscall信号
- 错误 21 错误 LNK2019:未解析的外部符号"公共:__thiscall
- 错误 LNK2019:未解析的外部符号"公共:__thiscall
- 未解析的外部符号公共__thiscall仅在调试模式下
- ODB:在公共声明中包含 *.hxx 文件时未解决的外部符号错误
- 错误 LNK2001:未解析的外部符号"公共:双__thiscall
- 错误 LNK2019:未解析的外部符号"公共:__thiscall
- Oracle是否为OCCI/OCI提供公共符号文件(PDB)
- "错误 LNK2019: 未解析的外部符号 "公共: __thiscall: 构造函数" 问题
- LNK2001:未解析的外部符号"公共:虚拟长__stdcall CTProcessus::Init