에러 내용: error LNK2005: already defined in LIBCMT.lib(new.obj)
현상 : MFC 라이브러리를 static하게 링킹할때 오류 발생
오류 : nafxcw.lib(afxmem.obj) : error LNK2005: "void * __cdecl operator new(unsigned int)" (??2@YAPAXI@Z) already defined in LIBCMT.lib(new.obj)
해결 방법 : 라이브러리를 올바른 순서로 강제링킹하도록 설정한다.
* 아래 방법은 VS 6.0 기준입니다. VS 2008은 약간 명칭이 다름!
<링커가 올바른 순서로 라이브러리를 강제 링크하는 방법>
1. Project 메뉴에서 Settings을 눌러 Project Settings 대화 상자를 엽니다.
2. Settings For 뷰에서 링크 오류가 발생하는 프로젝트 구성을 선택(강조 표시)합니다.
3. Link 탭을 누릅니다.
4. Category 콤보 상자에서 INPUT을 선택합니다.
5. Ignore Libraries 입력란에 라이브러리 이름(예: Nafxcwd.lib Libcmtd.lib)을 입력합니다.
참고: 링커 명령줄은 /NOD:<library name>과 동일합니다.
6. Object/library Modules 입력란에 라이브러리 이름을 입력합니다. 이 이름은 반드시 해당 행의 처음 두 라이브러리(예: Nafxcwd.lib Libcmtd.lib)와 같은 순서대로 나열되어야 합니다.
참고 : http://support.microsoft.com/kb/q148652/
- 2006/10/12 Joshua95 (최초 기록),
- 2011/01/04 Joshua95 (티스토리 이전 후 다시 등록)
'Programming > Code' 카테고리의 다른 글
[Delphi7] 리모트 디버깅 하기 (0) | 2011.03.30 |
---|---|
polling과 pulling의 차이 (0) | 2011.01.14 |
파일의 크기와 디스크 할당 크기의 차이 (0) | 2010.12.20 |
파일/폴더 존재 여부 파악하기 (1) | 2010.12.09 |
[C#] Collection vs List (0) | 2010.09.28 |
댓글