我正在使用Visual C ++并出现此错误。
我已经在global.h中单独声明了两个外部行。
extern CSocketManager m_SocketManager[10];
extern CSocketManager* m_pCurServer;
1>ServerSocketDlg.obj : error LNK2001: unresolved external symbol "class CSocketManager * m_pCurServer" (?m_pCurServer@@3PAVCSocketManager@@A) 1>SocketManager.obj : error LNK2001: unresolved external symbol "class CSocketManager * m_pCurServer" (?m_pCurServer@@3PAVCSocketManager@@A)
有没有人知道可能导致这些错误的原因?
答案 0 :(得分:6)
在.h中声明为extern的对象也必须在.cpp文件中声明。
问题是链接器不知道在哪里找到这两个对象。
解决方案:您还必须在.cpp文件中声明m_pCurServer,因为它是正在编译的.cpp,而不是标题。