2017-05-03 9 views
0

이것은 내가 시도하고 내 문제를 해결하고 모든 해답 말을 많이 검색 한되지 않은 외부 기호 "보호 정적 구조체"오류가

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

class EventHandler 
{ 
public: 

    EventHandler() 
    { 
    } 

    ~EventHandler() 
    { 
    } 

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

내 eventhandler.h입니다 내가

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

짓을했는지는 C++ 파일에서 정적 변수를 선언하지만, 난 여전히 얻을 수

Error LNK2001 unresolved external symbol "protected: static struct tagMSG * Entity::msg" ([email protected]@@[email protected]@A) 

왜 그런지 알 수 없습니다. 내가 놓친 게 있니?

+1

오류는 말한다'엔터티 :: msg'가 정의되어 있지 않은, 아니'이벤트 핸들러 :: Events'. 'Entity'와 그와 관련된 cpp에 대한 정의를 제공 할 수 있습니까? – lcs

+0

그게 문제 였어, 나는 다른 클래스에 정적 변수가 있다는 것을 잊어 버렸다. 그 점을 지적 해 주셔서 감사합니다. 오류 메시지를 더 자세히 읽으면 도움이됩니다. – StickyDuck

+0

"해결할 수 없으므로"더 이상 재생산 할 수 없다고 투표했습니다. –

답변

0

당신 또한 CPP 파일에 정적을 배치해야합니다 :

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