티스토리 뷰

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

 갑자기 boost 라이브러리의 asio 를 써보고 싶어져서 boost 를 다운받아서 잠깐 매뉴얼을 읽어본 후에 하라는 대로 bootstrap 과 b2 를 실행해서 라이브러리 빌드를 한 다음에 Visual Studio 2013 에서 asioTest 프로젝트를 만든 후 include/lib 디렉토리를 제대로 설정 후 빌드를 걸었더니 다음과 같은 링크 에러가 났다.


Error    1    error LNK2019: unresolved external symbol "class boost::system::error_category const & __cdecl boost::system::system_category(void)" (?system_category@system@boost@@YAAEBVerror_category@12@XZ) referenced in function "public: __cdecl boost::system::error_code::error_code(void)" (??0error_code@system@boost@@QEAA@XZ)    E:\git\asioTest\asioTest\asioTest.obj    asioTest


Error    2    error LNK2019: unresolved external symbol "class boost::system::error_category const & __cdecl boost::system::generic_category(void)" (?generic_category@system@boost@@YAAEBVerror_category@12@XZ) referenced in function "void __cdecl boost::system::`dynamic initializer for 'errno_ecat''(void)" (??__Eerrno_ecat@system@boost@@YAXXZ)    E:\git\asioTest\asioTest\asioTest.obj    asioTest


 대충 해석해보면, boost::system::system_category 를 찾을 수 없다는건데, 강제적으로 라이브러리 파일 링크를 걸어봐도 안되고, 도통 알 수가 없었다. 그러다가 asio 를 사용 중인 지인의 도움을 받아서 이리저리 비교해보다가 그 분도 링크 에러가 난 적이 있다면서, Win32 build 에서는 같은 에러가 나는 것을 보게 되었다...


 그랬다. 나는 요즘 계속 x64 프로그래밍만 하고 있어서 무의식적으로 x64 로 프로젝트를 설정했는데, boost 라이브러리는 win32 로 빌드가 기본이었다.


 b2 address-model=64 로 빌드를 다시 하니 링크 오류 해결~!! 




ps: 왜 boost 라이브러리에는 x86 이니 x64 같은게 lib 파일이름에 없을까라며 괜히 욕해본다;;

댓글
최근에 올라온 글
Total
Today
Yesterday