2014-07-20 1 views
0

내가 VS 2013에서 컴파일 할 몇 가지 괴물 샘플을 얻으려고하지만 난 내가하는 일에 상관없이 동일한 오류가 없습니다 계속 :괴물 오류 LNK2001 : 확인되지 않은 외부 기호

error LNK2001: unresolved external symbol "class boost::system::error_category const & __cdecl boost::system::system_category(void)"

오우거 SDK가 온다 부스트 라이브러리로. 불행히도 VS2013과 호환되지 않으므로 VS2013을 사용하여 컴파일 된 마지막 버전을 다운로드했습니다. 찾을 수 있습니다 here

"추가 디렉토리 포함"및 "추가 라이브러리 디렉토리"가 올바르게 설정되었습니다.

답변

0

오류 상태는 를 선언,하지만 을 구현하는 기호를 사용하고 있는지, boost::system::error_category은 다양한 라이브러리 오류를 관리 할 때, 그것은 시스템 라이브러리에 속하는 사용하는 것이, 부스트의 방법은 이 메서드의 구현은 [BOOST_ROOT] \ boost \ libs \ system \ src \ error_code.cpp에 있습니다.

가장 아마 원인이

당신이 괴물의 라이브러리 또는 일부 부스트의 도서관이 방법을 사용을 포함하는 라이브러리의 일부를 포함하는 것입니다.

부스트에서 라이브러리의 많은 단지 헤더되어 있지만이 특정 라이브러리 시스템는,이 .CPP의 컴파일 필요가있다 : 두 가지 수정이 .LIB 또는 부스트에서 .DLL을 (컴파일을 이것에 대한 자세한 정보는 Prepare to Use a Boost Library Binary을 참조하십시오) 프로젝트에서 이것을 사용하면 (헤더가 아닌 부스트 라이브러리를 많이 사용하는 경우 더 좋을 수 있습니다) 또는 가장 쉬운 수정 : 프로젝트에 error_code.cpp 파일이 포함 된 과 다시 컴파일.

+0

고마워요. ** error_code.cpp **를 프로젝트에 포함 시켰습니다. 오류가 사라졌습니다. 이제는 포함 된 ** libboost_system-blablabla.lib **에서 왜 작동하지 않는지 아직도 이해할 수 없습니다. –

+0

대부분의 문제는 VS2013으로 부스트 컴파일, 부스트 컴파일의 일반적인 방법은 그들의 빌드 관리자 (bjam 이전에, 지금은 b2라는 이름의 링크가 게시 참조)를 사용하여, 나는 거기에 어떤 방법으로 CMake를 사용하여 VS 프로젝트를 생성 할 수 있다고 생각합니다 CMake 파일에서,하지만 아직 완전히 지원되지 않습니다) – NetVipeC

+0

당신은 모든 방법이 옳았습니다. VS2012와 함께'libboost_system-vc110.lib'을 사용하기로 바꿨습니다. 더 이상'error_code.cpp' 파일을 프로젝트에 포함 할 필요가 없습니다. 고마워 –