错误LNK2001:未解析的外部符号Visual C++

error LNK2001: unresolved external symbol Visual C++

本文关键字:外部 符号 Visual C++ LNK2001 错误      更新时间:2023-10-16

可能重复:
头文件中的staticexternconst

我在Visual C++中工作,遇到了这个错误。

我已经分别在下面的global.h中声明了两个外部行。

extern CSocketManager  m_SocketManager[10];
extern CSocketManager* m_pCurServer; 
1> ServerSocketDlg.obj:错误LNK2001:未解析的外部符号"class CSocketManager*m_pCurServer"(?m_pCurServer@@3PAVCSocketManager@@A)1> SocketManager.obj:错误LNK2001:未解析的外部符号"class CSocketManager*m_pCurServer"(?m_pCurServer@@3PAVCSocketManager@@A)

有人知道是什么原因导致了这些错误吗?

在.h中声明为extern的对象也必须在.cpp文件中声明。

问题是链接器不知道在哪里可以找到这两个对象。

解决方案:您还必须在.cpp文件中声明m_pCurServer,因为它是正在编译的.cpp,而不是标头。