728x90
참고 블로그.
http://darkpgmr.tistory.com/50
Static , Dynamic library 사용
Static library 의 경우는 .lib 파일만 로드를 하면 됨. 해당 코드를 사용되는 위치에 로드를 하는 방식으로 동작함.
Dynamic은 .lib, .dll 파일 모두 필요함.
요약..
/MD , /MT 의 차이 설명
CRT (C Runtime LIbrary)를 컴파일시에 동적라이브러리로 로드할지 아니면 정적으로 할지를 결정하는 것.
따라서 외부 라이브러리가 /MD로 컴파일 되어 있고, 이를 사용하는 응용프로그램에서 /MT로 할 시에 동일한 라이브러리가 겹쳐서 로드가 될수 있음. 그에 따른 컴파일 오류가 발생함.
1. 동적 라이브러리(Dynamic Link Library)
- 프로그램 실행 시 필요시만 외부 DLL 파일에서 함수를 참조
- 프로그램 실행 시 프로그램 로딩 시간이 단축
- 함수 업그레이드 시 해당 DLL만 수정 배포한다
- 소스 외부 유출 방지 효과
- 실행 파일 만들때 필요한 파일: *.h,*.lib (*.dll 참조 용)
- 프로그램 실행할 할 때 필요한 파일: *.dll (배포할 때 *.dll 필요)
- dll 제작 시 lib도 같이 생성됨
2. 정적 라이브러리(Static Link Library)
- 필요한 함수를 프로그램 코드에 붙여 프로그램 자체에서 참조
- 프로그램 실행 후 빠른 처리시간
- 프로그램 실행 파일만 있으면 실행(하나의 파일만 있으면 됨)
- 소스 외부 유출 방지 효과
- 실행 파일 만들때 필요한 파일: *.h,*.lib (별도의 *.dll 필요 없음)
728x90
728x90