본문 바로가기
# 버그 메모장

[SOLVED]LNK2001 에러

by 쁘레레레레레 2020. 4. 14.

LNK2001에러랍시고

 

error LNK2001: "private: static class C_STAGE1 * C_STAGE1::m_pStage1" (?m_pStage1@C_STAGE1@@0PAV1@A) 외부 기호를 확인할 수 없습니다.

 

이와 같은 오류가 떴다.

 

다른내용은 무시하고 LNK2001은 클래스 내부에 static변수를 선언했기 때문이다.

 

class C_STAGE1
{

private:
    static C_STAGE1* m_pStage1;

 

내 경우는 이렇게 해 놓은채로 무작정 빌드를 했다가 또 빌더 에러겠거니 했는데

생각해보니 초기화를 안해주었다...

 

위는 헤더파일이고

 

cpp 파일로 가서

 

네임스페이스까지 적어서 초기화 해주면 된다.

 

#include "stage1.h"

USING_NS_CC;

C_STAGE1* C_STAGE1::m_pStage1 = nullptr;

C_STAGE1::C_STAGE1() :
	m_tMap{},
	m_tGround{},
	m_tProps{},
	m_tProps2{},
	m_tWall{},
	m_tBG1{},
	m_tBG2{},
	m_tBG3{},
	m_tBG4{},
	m_tCloud{},
	m_tSky{},
	m_pMeta{}
{
}

 

위 C_STAGEC_STAGE1* C_STAGE1::m_pStage1 = nullptr; 이처럼 적어주면 된다.