라이브러리란? 기능을 미리 구현해 놓은 프로그램 코드의 묶음
정적 라이브러리 VS 동적 라이브러리
- 정적 라이브러리(Static library):
라이브러리(*.lib)를 실행 바이너리에 포함한다. (링킹 단계에서 실행파일에 결합)
실행 바이너리에 포함되기 때문에 추가 작업 없이 독립적으로 라이브러리 함수들을 사용할 수 있다.
그러나 실행 파일에 함수의 코드가 복사되어 있기 때문에 실행파일의 크기가 커질수도 있다.
- 동적 라이브러리(Dynamic library):
오브젝트 파일들을 프로그램을 컴파일 하는 과정에서 포함한다.
정적 라이브러리처럼 컴파일 시에 함수가 연결되는 방식이 아니라 동적으로 링크하여 사용된다.
실행파일에는 호출할 함수의 정보만 포함하고 실제 함수 코드는 복사되지 않으므로 실행파일의 크기가 작아진다.
그러나 실행파일은 함수에 대한 정보만 포함하고 있기 때문에 프로그램 실행시에 실제코드를 가지고 있는 dll파일이 항상 존재해야 한다.
참조