[라이브러리] 정적(static) vs 공유(shared)
·
개발/개발 공통
정적 라이브러리(Static Library)란? 프로그램 빌드 시에 라이브러리가 제공하는 코드를 실행 파일에 넣어서 빌드하는 방식의 라이브러리를 의미한다. 정적 라이브러리를 사용하여 컴파일하면 링커가 프로그램이 필요하는 부분을 라이브러리에서 찾아 실행파일에 복사한다. 실행파일에 다 들어가기 때문에 실행할 때 라이브러리가 필요 없이 다 포함되어 있다. 장점은 시스템 환경이 변해도 애플리케이션에 아무런 영향이 없고, 완성된 애플리케이션을 안정적으로 사용할 수 있다는 점이다. 반면에 사용하는 모든 오브젝트 코드를 실행 파일에 포함하기 때문에 메모리에 로드되는 애플리케이션 코드 크기가 커진다는 단점이 있다. 리눅스에서는 확장자 a가 붙는다. 공유 라이브러리(Shared Library)란? 어떤 라이브러리가 제공..