본문 바로가기
Programming/C & C++

MSVCRTD.lib(MSVCR90D.dll) : error LNK2005: __stat64i32이(가) LIBCMTD.lib(stati32.obj)에 이미 정의되어 있습니다.

by leanu 2012. 11. 29.

본인이 접한 이번 에러의 케이스는 총 2가지


2가지 모두 라이브러리에 해당하는 모듈과 그걸 이용하는 바이너리 모듈 빌드시 빌드 옵션의 차이로 인해 발생하는 에러. 빌드 방식을 통일하거나, 바이너리 모듈 빌드시 차이를 포괄할 수 있는 옵션을 사용하면 된다. 


연관 빌드 옵션


  • Runtime Library 옵션 : /MTd /MD /MT 등등 ( 참조링크 )
  • DEBUG/RELEASE 옵션


하나는, 라이브러리에 해당하는 것을 DEBUG 모드로 빌드하고 그걸로 바이너리를 만드는 빌드시스템에서는 RELEASE로 해서 에러 발생. 이는 둘다 빌드 모드를 맞춤으로 해서 해결함.


다른 하나는 Runtime Library 사용에 대한 옵션 차이로 인해 발생한 에러. 이쪽도 빌드 옵션을 맞춰서 해결하였음. 참고로 재배포 패키지 버전간 차이로 인한 오동작을 줄이기 위해 /MTd로 일괄 사용하였다.

댓글