Admin | Write | GuestBook
[공지] 해당 블로그에 용건이 있으신 분께서는 http://blog.fore.kr/ 의 방명록(Guestbook)으로 부탁드립니다.
Visual Studio Runtime Library Compiler Option /MD /MT
Category : Programming/Programming Talk | URL : | Written by 포레 ( 2014. 7. 20. 05:46 ) | 신고

이 글을 읽기 전에, 어디까지나 필자가 보고 느낀 것을

그대로 적은거라 아래의 글이 틀릴 수 있습니다.

틀릴 시, 지적해주시면 감사하겠습니다.

 

무척이나 오랜만에 Visual Studio를 켜서 컴파일러해서 컴파일하려니까

 

/MD 와 /MT 의 차이를 잊어버리고 말았다.

 

나는 이 글에 관심이 없다. 우연히 검색하다 들어왔다. 하는 분들을 위해

 

결론부터 말하면 " 그냥 앵간해선 /MT 으로 컴파일 하시는 걸 추천합니다 "

 

그럼, 본격적으로 글을 적어보도록 하자.

 

:: /MD 의 경우, Import Table 와 올리디버그 ::

 

[ Import Table ]

 

 [ 올리디버그 ]

 

 

:: /MT 의 경우, Import Table 와 올리디버그 ::

 

 [Import Table]

 

 [올리디버그]

 

대충봐서 위 두개를 보고 차이를 느낀 사람은 그냥 창을 닫거나 했을 수 있을 법한데

 

CRT(C-RunTime) 함수가 들어가느냐, 안들어가느냐 차이이다.

 

/MD : 런타임 함수를 기본으로 컴파일러 함. ( 함수를 동적 라이브러리에서 불러옴. )

 

/MT : MS에서 제공하는라이브러리의 코드를 가져옴.

 

따라서, MD로 설정하는거보다 MT로 설정하는게 훨씬 용량이 크게 들어간다.

( inline 함수인가 inline 함수가 아닌가의 차이 )

 

그럼, 여기서 장단점을 감히 말해보도록 하자.

 

/MD 의 장단점

장점 : 용량이 적게 들어간다.

( 동적 라이브러리를 읽어옴으로 용량이 적게 들어간다. )

런타임 오류메시지로 /MT에 비해서 오류를 추적하기 쉽다.

단점 :  프로세스간의 호환이 뛰어나지 않다.

( 어떠한 경우에 의해 C-Runtime 에러가 발생할 확률이 높음. )

 

/MT 의 장단점

장점 : 프로세스간의 호환이 뛰어나다.

(자신이 고유 코드 영역을 가지고 있어, 충돌의 가능성은 거의 제로에 가깝다.)

단점 : 용량이 커진다.

( 정적 라이브러리가 들어가 용량이 커지게 된다. )

 

위 차이 정도니까, MD 보다는 개인적으로 MT 옵션을 추천한다.

 

 

Category
분류 전체보기 (605)
Notice (6)
Programming (79)
DISKER (1)
FSCH (7)
Caption (0)
Rest Time ! (443)
Hobby (64)
Tour (5)
Blind Post (0)
Recent Post
Recent Comment
Link
Calender
«   2024/05   »
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
Total :
Today :
Yesterday :