본문 바로가기

C++

C++ Static Library ,DLL(Dynamic Linking Library)

Library란?

자주 사용하는 함수들을 하나의 파일로 모아둔 것.
Library로 한번 만들어두면 다시 만들 필요 없이 해당 Library만 불러와서 사용할 수 있어 개발 속도가 빨라지는 장점이 존재


Static Library란?

정적 라이브러리 라고 불린다.

exe파일을 만들때 해당 Library파일이exe파일에 포함되는 형태

컴파일 시점에 실행 파일에 함수를 복사하지 않고, 함수의 위치 정보만 갖고 컴파일 타임에 내 소스와 결합되는된다.

 

Static Library특징

시스템 환경이 변해도 실행파일에 아무런 영향이 없어 안정적으로 사용할수 있다.

모든 오브젝트 코드가 실행 파일에 묶여 있기때문에 실행파일의 코드가 커진다.

실행파일만 배포하여도 실행할수있다.


DLL이란?

동적 라이브러리 라고 불린다.

DLL은 여러 프로그램에서 동시에 사용할 수 있는 코드와 데이터가 포함된 라이브러리입니다.

프로그램 실행시에 해당 Library에 접근하여 사용후 다시 자기 자신한테 돌아오는 방식

 

DLL의 특징

하나의 Library를 여러곳에서 사용하기 때문에 메모리가 절약된다.

물리 메모리에 한번 올라가면, 해당 DLL을 공유하는 실행파일이 모두 종료될때 까지 물리 메모리에 존재한다.

Memory Mapping 메커니즘 기반으로 완성된다.

DLL은 여러개의 실행파일이 공유하지만 하나만 존재하는것은 아니다.

 

처음 메모리 등록시 첫번째에 TEXT1, TEXT2가 등록된 상태에서

실행파일 BBB에서 TEXT1도 필요해진 경우 TEXT1.DLL이 메모리에 올라가 DLL파일이 2개가 올라갈수있다.

'C++' 카테고리의 다른 글

[C++] 고정수소점, 부동소수점  (0) 2021.12.14
C++ Dll생성 및 사용  (0) 2021.01.26
C++ 콜백함수  (0) 2020.12.27
C++ STL(Map)  (0) 2020.10.06
C++ STL(알고리즘)  (0) 2020.09.28