본문 바로가기

공부/MFC

error LNK2001 : 구조체의 주소를 외부 파일에서도 참조할 시 뜨는 에러.

왜 발생하는가 -> 

extern struct_wpt* m_ptWptAll;

이런식으로 정해두고나서 쓰질 정의된 것이 없기때문에

참조를 하지 못하여 에러가 뜨는 것.


구글링을 해서 검색을 하면 무슨 라이브러리를 추가해야한다는둥 하는데

그냥 코딩을 잘못 한 것인 경우일 확률이 더 높다.

왜 저게 잘못되었냐.. 면 

struct_wpt* m_ptWptAll;

라는 문장을 코딩하지 않아서 이다.



위에

 extern struct_wpt* m_ptWptAll; 
라고 코딩한 내용은 선언이지 정의가 아니다.

다시 말해서 위의 extern 문은 프로그램안에 이런 변수가 있다고 알려주는 역할 밖에는 하지 않는다.
 

변수의 영역을 잡아주지도 않았는데 어떻게 참조할 수가 있겠는가?

그런고로  

.cpp 파일중 하나에서 
struct_wpt* m_ptWptAll;  

라는 문을 첨가해야 비로소 컴파일러는 해당 변수의 영역을 생성하는 코드를 만들게 된다.