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

时间:2012-09-12 15:07:51

标签: c++ visual-studio-2010 mfc

  

可能重复:
  static, extern, const in header file

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

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

1 个答案:

答案 0 :(得分:6)

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

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

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