2008에서 빌드해서 쓰던 static 라이브러리를 2010으로 프로젝트만 변환해서 빌드하고라이브러리를 포함해서 빌드 하면 링크 에러중 아래와 같은 에러가 발생 하게 되는 경우가 있다.
LNK2005: "public: void __thiscall std::_Container_base12::_Orphan_all(void)
..검색하다 문제점을 발견 하였는데.
원인은 해당 디버그 라이브러리가 C/C++ 빌드 런타임 옵션이 "Multi-threaded Debug(Mtd)" 이고
링크해서 쓰는 소스 프로젝트에서는 C/C++ 빌드 런타임 옵션이 "Multi-threaded Debug DLL(MDd)" 이여서 링크 에러가 발생 하는 문제 였다.
라이브러리 빌드 옵션을 가져다 쓰는 프로젝트와 옵션을 맞추어 빌드 하니 정상 동작을 하였다.
댓글 없음:
댓글 쓰기