티스토리 뷰

링크시에 라이브러리 사용시 __afxForceEXCLUDE 이 존재 하지 않을시에 상당히 당황스럽게 만든다. 원래의 라이브러리가 MFC 관련 심볼이 포함되어있을때 참조하게 되면 오만가지의 컴파일 에러를 경험하게 된다.

그럴 경우 pragma 문장을 이용하여 라이브러리를 이용하여 참조하지 않도록 하는데 
#pragma comment(linker, "/NODEFAULTLIB:libcmt.lib")
#pragma comment(linker, "/NODEFAULTLIB:libcmtd.lib")
#pragma comment(linker, "/NODEFAULTLIB:nafxcw.lib")
#pragma comment(linker, "/NODEFAULTLIB:nafxcwd.lib")

LNK2001 : __afxForceEXCLUDE 외부심볼이 정의 되지 않았습니다라는 문장을 타게 되면 다음의 문장을 선언해주어 문제를 해결한다. 특히 MFC 에서 생성된 라이브러리를 가져다 사용할 때 MFC 를 사용하지 않는 경우에 경우 심볼명칭이 매치하지 않는 현상이므로 다음과 같이 선언하고 클린 컴파일을 해준다.

extern "C" { int __afxForceEXCLUDE; }

참고링크:http://www.codeguru.com/forum/archive/index.php/t-337181.html