티스토리 뷰

2. 정적 라이브러리 & 동적 라이브러리

1. 정적 라이브러리 (Static Library)

컴파일되어 있는 오브젝트 파일들이 하나로 묶여있는 형태. 

 

1) 장점

  1. 런타임이 없다. 실행 파일을 배포할 때 포함하지 않는다. 
  2. 컴파일 타임에 정적 라이브러리에 연결하는 것이 일반적으로 개별 소스 파일에 연결하는 것보다 빠르다. 

2) 단점

  1. 업데이트 시, 프로그램을 새 실행 파일로 다시 컴파일해야 한다. 
  2. 해당 라이브러리를 사용하는 시스템의 모든 프로그램은 실행 파일에 사본을 포함한다. 즉, 매우 비효율적이다. 

 

2. 동적 라이브러리(Dynamic Library)

컴파일되어 있는 오브젝트 파일 그 자체. 

 

1) 장점

  1. 프로그램을 실행할 때 라이브러리 파일의 단일 사본만 메모리에 로드하므로 해당 라이브러리를 사용하여 여러 프로그램을 실행하기 시작할 때 많은 메모리를 저장한다. 
  2. 런타임 동적 링크는 라이브러리 유지 보수를 보다 쉽게 해준다. 

2) 단점

  1. 컴파일 대신 런타임에 링크가 발생하기 때문에 프로그램을 로그하고 실행하는데 시간이 더 걸린다. 

 

'SW > C' 카테고리의 다른 글

C_6. 재귀함수  (0) 2020.01.05
C_5. 포인터  (0) 2020.01.04
C_4. 오버플로우 & 언더플로우  (0) 2020.01.04
C_3. 정적 메모리 할당 & 동적 메모리 할당  (0) 2020.01.04
C_1. 공간 복잡도 & 시간 복잡도  (0) 2020.01.03
댓글