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

Nab*_*eel 2 c++ mfc visual-studio-2010

可能重复:
static,extern,const在头文件

我正在使用Visual C++并出现此错误.

我已经在global.h中单独声明了两个外部行.

extern CSocketManager  m_SocketManager[10];
extern CSocketManager* m_pCurServer; 
Run Code Online (Sandbox Code Playgroud)
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)

有谁知道可能导致这些错误的原因是什么?

Nik*_*pol 6

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

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

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