IT 취미생활.  
Front Page
Tag | Location | Media | Guestbook | Admin   
 
"msvcrtd.lib" 링크시 문제
LNK4098: defaultlib "msvcrtd.lib" conflicts ... 학습중(Windows)

C Run-Time Library는 standard library를 말합니다.

printf, strcpy, malloc, new, cin, cout 등등이  이 라이브러리에 포함됩니다.


종류는 꽤 많은데, 별로 복잡하지는 않습니다.

libc.lib : c언어에 해당하는 라이브러리 입니다. printf, strcpy, malloc 등이 구현되어 있습니다.

libcmt.lib : libc 와 동일합니다만, 이것은 멀티쓰레드 용입니다.

msvcrt.lib : libc 와 동일합니다만, 이것은 dll 용입니다.

               ( 위의 두가지는 static link 로 사용되고, 이것은 dynamic link 로 사용됩니다.)



libcp.lib : c++언어에 해당하는 라이브러리 입니다. cin,  cout, new  등이 구현되어 있습니다.

libcpmt.lib : libcp 와 동일합니다만, 이것은 멀티쓰레드 용입니다.

msvcprt.lib : libcp 와 동일합니다만, 이것은 dll 용입니다.

               ( 위의 두가지는 static link 로 사용되고, 이것은 dynamic link 로 사용됩니다.)



그러므로, 위의 라이브러리는 두개의 그룹중에 하나씩만 포함이 되어야 합니다.

만약, libc 와 msvcrt 가 둘다 링크되면 중복선언 되었다는 에러가 납니다.


하지만, 다른 프로젝트에서 가지고 왔다면, 이러한 링크옵션 수정하는 것이 쉽지 않을 수 있습니다.

프로젝트 구조를 보아야 알 수 있으나, 한가지 해결방법은....


링크에서 메세지에도 나와 있듯이, 링크 옵션에 다음을 추가 하십시오.

/NODEFAULTLIB:library

 

library 에 포함시키지 말아야 할 라이브러리를 추가하시면, 이 라이브러리는 링크에 포함되지 않습니다.

 

그러면, 중복 선언 에러는 해결 할 수 있습니다.



 출처 : Devpia / VC++ / 질문답변 / 572567

작성자 : 김무석(kim790815) 님



BLOG main image
취미생활
 Notice
 Category
분류 전체보기 (191)
매일매일갱생 (83)
서버개발 (1)
임베디드개발 (12)
Programming (80)
Personal Projects (6)
유용한 프로그램 (0)
 TAGS
Error Case VC++ 출장 서태지 Dshow 티스토리초대 debugging 영어 이메일 Windows Mobile6.0 MP3 Algorithm 벨소리 변경 DVB-T Wince5.0 Java Brazil C english email 미라지폰 Debug warning Linux 티스토리 초대장 알고리즘 DirectShow It DVB 군대 English ISDB-T 음식 퇴사 1seg C++ project spam mail isdbt M480 개발자
 Calendar
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
 Recent Entries
 Recent Comments
 Recent Trackbacks
 Archive
 Link Site
zextor
괴짜 프로그래머의 일상사~@@
Gag & Peace, and more..
Kazakhstan Almaty.......
Min-A
Sadgarret
Steve Yoon's log
가슴 뛰는 삶을 살아라
오스틴 파워
GUI sin
melanie parker_Lady
제레미의 TV 2.0 이야기..
 Visitor Statistics
Total :
Today :
Yesterday :
rss