2014-12-02 8 views
3

Visual Studio 2013에서 게임을 컴파일하려고합니다. 게임에서 Box2D를 사용하지만 릴리스 모드에서 컴파일 할 때 Box2D.lib 릴리스에서 오류가 발생합니다. 그것은 디버그 Box2D.lib와 디버그 모드로 컴파일 할 때 잘 작동합니다. 이 세 가지 같은VS2013에서 컴파일 : C++을 사용하는 LNK2001 오류

내가 주로 135 오류를 받고,하고있어 뭔가 :

1>Box2D.lib(b2CollideEdge.obj) : error LNK2001: unresolved external symbol @[email protected] 
1>MyContactListener.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) char const * __cdecl std::_Winerror_map(int)" 
([email protected]@@[email protected]) 
1>Box2D.lib(b2ContactManager.obj) : error LNK2001: unresolved external symbol _atexit 

내가 지금 Box2D.lib의 여러 번 구축하고, 내가 올바른 릴리스로 연결하고있어 확신하고 디버그 라이브러리.

컴파일러 플래그/GS (버퍼 보안 검사)를 비활성화하려고 시도했지만 도움이되지 않았습니다.

Box2D.lib을 빌드하고 게임을 컴파일 할 때 런타임 라이브러리에 멀티 스레드 DLL (/ MD) 플래그를 사용합니다.

편집 : 라이브러리 "bufferoverflowU.lib"에 링크 할 때 "@__ security_check_cookie @ 4"오류를 제거했습니다. 여전히 133 개의 오류가 남아 있습니다.

+1

사용중인 Box2D 라이브러리는 이전 버전의 Visual Studio로 컴파일되었을 수 있습니다. –

+1

@Captain Obvlious : 저는 Box2D 라이브러리가 VS의 같은 버전으로 컴파일되어 있다고 확신합니다. 게임을 컴파일하고 있습니다. 사실 지난 번에 20 분 전에 라이브러리를 컴파일했습니다. – lefti

+0

이들은 모두 Microsoft 버전과 관련된 C 런타임 라이브러리 기호입니다. 당신이 그것을 어떻게 피할 수 있었는지 추측하는 것은 불가능합니다. 사용하는 링커 옵션을 표시하십시오. –

답변

0

링커 옵션에서 기본 런타임 라이브러리의 연결을 비활성화했을 수 있습니다. 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 속성으로 이동하십시오. 링커 -> 입력에서 모든 기본 라이브러리 무시 옵션을 No로 설정하십시오.

+0

"무시 기본 라이브러리 모두"를 아니요로 설정했습니다. – lefti