2

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

我正在使用 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)

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

4

1 回答 1

6

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

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

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

于 2012-09-12T15:12:32.943 回答