c++ - 错误 LNK2001 : unresolved external symbol Visual C++

标签 c++ visual-studio-2010 mfc

<分区>

Possible Duplicate:
static, extern, const in header file

我在使用 Visual C++ 时遇到了这个错误。

我在 global.h 中分别声明了下面两行 extern 行。

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)

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

最佳答案

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

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

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

关于c++ - 错误 LNK2001 : unresolved external symbol Visual C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12391253/

相关文章:

c# - 从 Java 到 C++ 或 C#

C++返回 vector ,无法弄清楚出了什么问题

c++ - 程序无法打开文件,但文件已经存在

asp.net - Visual Studio 2010 调试缓慢

c++ - 具有构造函数类型转换和转换运算符的转换序列

c++ - 在模板类上重载运算符

asp.net-mvc - 在 View T4 模板中获取 Controller 名称

c++ - MFC:显示/隐藏分隔面板

c++ - MFC) 使 TreeCtrl 失去项目焦点

mfc - 如何在每次显示之前更新工具提示文本?