未解析的外部符号"受保护的静态结构"尽管在.cpp文件中定义了错误

时间:2017-05-03 19:48:46

标签: c++ static unresolved-external

这是我的eventhandler.h

#pragma once
#include <queue>
#include <Windows.h>

class EventHandler
{
public:

    EventHandler()
    {
    }

    ~EventHandler()
    {
    }

    static std::queue<MSG*> Events;
};

我已经搜索了很多东西来尝试解决我的问题,并且所有答案都说在c ++文件中声明静态变量,我已经完成了

  #include "EventHandler.h"
  std::queue<MSG*> EventHandler::Events;

但我还是得到了

Error   LNK2001 unresolved external symbol "protected: static struct tagMSG * Entity::msg" (?msg@Entity@@1PAUtagMSG@@A)

我无法弄清楚原因。我错过了什么吗?

1 个答案:

答案 0 :(得分:0)

需要将你的静态放在cpp文件中:

// EventHandler.cpp
std::queue<MSG*> EventHandler::Events;