error LNK2019

error LNK2019: "public: bool __thiscall GameState::State::IsInit(void)const " (?IsInit@State@GameState@@QBE_NXZ) 외부 기호(참조 위치: "public: virtual void __thiscall GameState::GameStateManager::Terminate(void)" (?Terminate@GameStateManager@GameState@@UAEXXZ) 함수)에서 확인하지 못했습니다.

흔히 error LNK2019는 정말 해당 함수등을 제대로 정의나 선언을 못하거나 혹은 참조를 못했을 때 발생합니다만, 아무리 살펴봐도 잘 되있는데도 링크에러가 발생하더군요.

프로젝트를 리펙토링 하던 과정에서 FSM의 State 클래스와 GameState의 State 클래스가 있었는데 리팩토링 전에는 다른 모듈에 있어서 잘 되었지만 프로젝트를 합치면서 중간 build 파일인 obj 파일이 같은 이름이라 충돌이 일어나더군요.

그래서 namespace FSM과 namespace GameState로 namespace를 써가면서 사용해 왔었는데도 무용지물이네요. 같은 프로젝트 안에는 파일명이 같은 건 없도록 해서 해결했습니다.

댓글

이 블로그의 인기 게시물

'xxx.exe' 프로그램을 시작할 수 없습니다. 지정된 파일을 찾을 수 없습니다.

goorm IDE에서 node.js 프로젝트로 Hello World Simple Server 만들어 띄워보기

애드센스 수익을 웨스턴 유니온으로 수표대신 현금으로 지급 받아보자.