2014-01-29 1 views
1

저는 최근에 게임 엔진과 몇 가지 게임 데모를 작성하여 엔진을 구축하기 시작했습니다. 따라서이 단계에서는 여전히 매우 간단합니다. 엔진은 정적 lib로 제작되어 게임 프로젝트에 연결됩니다. Visual Studio Express 2012를 사용하고 있습니다.갑자기 게임 엔진에서 내 게임 엔진을 참조하는 해결되지 않은 외부 기호가 표시되는 이유는 무엇입니까?

몇 시간 전에 TinyXML 소스 파일을 엔진에 추가하려고했습니다. 엔진은 잘 내장,하지만 난 내가 시작한 이후 일한 내 엔진 기능을 참조 내 MAIN.CPP에서 확인되지 않은 외부 기호를 받기 시작 프로젝트 구축시 : 여기

2>main.obj : error LNK2019: unresolved external symbol "public: static class AshEngine::SystemManager & __cdecl AshEngine::SystemManager::GetInstance(void)" ([email protected]@[email protected]@[email protected]) referenced in function _main 
2>main.obj : error LNK2019: unresolved external symbol "public: bool __thiscall AshEngine::SystemManager::Start(class AshEngine::AshGame *,char const *,int,int)" ([email protected]@[email protected]@[email protected]@[email protected]) referenced in function _main 

을 내 주요입니다 :

int main(int argc, const char** argv) 
{ 
    Game* game = new Game(); 
    bool success = AshEngine::SystemManager::GetInstance().Start(game, "Monopoly", SCREEN_WIDTH, SCREEN_HEIGHT); 

    return 0; 
} 

다시 작성, 청소, PC 다시 시작, lib 포함 확인, VCC 디렉터리에 lib 폴더 추가 및 "추가 종속성"에서 직접 lib 지정. 필자는 모든 변경 사항을 되돌려 놓았습니다 (수동으로 PC에 소스 컨트롤이 없기 때문에 - /), 동일한 엔진을 사용하는 3 개의 게임 데모 프로젝트에서 테스트했습니다. 엔진을 사용하는 새로운 프로젝트, 그리고 그들은 모두 동일한 문제를 가지고 있습니다.

자세한 링커 로깅을 설정하면 엔진 라이브러리가 "사용되지 않는 라이브러리"아래에 나타납니다. 나는/OPT : NOREF 링커 플래그를 켜 보았지만 도움이되지 않았다.

저는 왜이 두 기호를 찾을 수 없습니까? 어떻게 든 TinyXML을 추가 할 때 내 엔진이 고장났습니다. TIXML_USE_STL을 '모든 구성 (All Configurations)'에 추가하려고 할 때 모든 전 처리기 정의를 숨 겼던 느낌이 들었습니다. 나는 WIN32, _DEBUG 및 _CONSOLE을 읽었지만 그 밖의 다른 것들은 있을지 모르겠습니다. 나는 소스 컨트롤을 설치하고 있기 때문에 변경 사항을 되돌릴 수있다.

그동안 프로젝트에서 이러한 기호를 찾을 수없는 이유는 무엇입니까? `AshEngine :: SystemManager가 :: GetInstance`이 구현되는 경우 기호의

+1

/I 실수 처리기 정의에서 삭제했다 #ifdef와 내부했다? –

+0

Lol Raymond - PLATFORM_WIN32 ifdef 내부에서 구현되었습니다 ... 실수로 전 처리기 정의를 숨겼을 때 nuked되었고 ... 다시 추가되었고 모두 잘되었습니다. 저를 봐 주셔서 감사합니다. 하수구 아래로 3 시간 :( –

답변

1

구현은 마른 세수

관련 문제