이 글을 읽기 전에, 어디까지나 필자가 보고 느낀 것을
그대로 적은거라 아래의 글이 틀릴 수 있습니다.
틀릴 시, 지적해주시면 감사하겠습니다.
무척이나 오랜만에 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 옵션을 추천한다.
BMP 파일 구조에 대한 고찰. (0) | 2014.11.11 |
---|---|
갑작스레 떠오른 비트 구조체와 바이트 순서의 관계 (0) | 2014.10.28 |
[API] 현재 실행중인 프로그램 경로 구하기 및 폴더 생성 (0) | 2013.05.31 |
CreateDialogBoxIndirectParam, DialogBoxIndirectParam 구현. (2) | 2013.05.17 |
광고, 악성코드 썰 좀 풀어보자. (4) | 2013.05.04 |
|
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |