프로그래밍/C++ & MFC

libcmt.lib 링크 충돌 문제

단칸이 2021. 12. 29. 12:03

라이브러리를 링크하여 개발하는 경우, 32bit의 Debug/Release 및 64bit의 Debug/Release에 환경에 맞게 링크할 라이브러리를 각각 설정해야 한다는 불편함이 있습니다. 또한, 다수의 라이브러리를 사용할 때 상호간 링크 충돌이 발생하면 해결이 상당히 까다로워 집니다.

그래서 가능하면 라이브러리 용으로 개발된 프로젝트의 소스코드 파일을 직접 Include하여 컴파일하는 방식을 선호하는데, 이 때에도 심심치않게 libcmt.lib 링크 충돌 에러를 만나게 됩니다.

이는 해당 라이브러리 프로젝트에서 CRT를 Include하고 있는데, MFC 프로젝트에서도 CRT 라이브러리를 사용하기 때문에 발생하는 문제입니다. 이를 해결하려면 프로젝트 설정을 통해 명시적으로 링크 순서를 변경하는 방법이 있지만, 협업 시에 다른 개발자들도 개발환경을 동일하게 맞춰야 한다는 또다른 문제가 발생합니다.

그래서 간단하게는 해당 .cpp 파일들의 상단에 #Include "stdafx.h"를 추가하여 Include 순서를 조정할 수 있습니다만........ 괜히 뭔가 찜찜한 느낌적인 느낌....

'프로그래밍 > C++ & MFC' 카테고리의 다른 글

CRT (C Run-time Libraries)  (0) 2021.07.12
DLL Main 구현 시 주의점  (0) 2021.07.11
함수 호출 규약  (0) 2021.07.07