Library4developers
라이브러리란?
- 도서관이라는 뜻처럼, 헤더 파일과 실행 루틴이 모여 있는 것으로 프로그래밍 언어에서 입출력과 문자열 관리와 같은 일상적인 작업을 추가할 때 사용한다.
동적 라이브러리와 정적 라이브러리의 특징
동적 라이브러리
- 일반적으로 .so 로 끝나는 이름을 하고 있다.
- 윈도우의 DLL 파일이라고 생각하면 된다.
- 실행할 때 시스템에 설치되어 있는 라이브러리를 가져다 사용하므로, 정적 라이브러리에 비해 상대적으로 느리다.
- 공유 라이브러리를 사용하면 실행파일에 라이브러리를 포함할 필요가 없으므로 스토리지가 절약된다.
- 사용법
gcc --shared -o parse parse.c -lxml2
정적 라이브러리
- 일반적으로 .a 로 끝나는 이름을 하고 있다.
- 윈도우의 lib 파일이라고 생각하면 된다.
- 컴파일할 때 함수를 실행파일에 포함한다.
- 실행할 때 모든 함수가 실행파일 안에 있으므로, 동적 라이브러리에 비해 상대적으로 빠르다.
- 정적 라이브러리를 사용하면 의존성 등에서 조금 더 자유로울 수 있다.
- 사용법
gcc --static -o parse parse.c -lxml2
라이브러리의 설치
- sudo apt-get install로 설치가 가능하다.
ex)
sudo apt-get install libxml2-dev
- 설치된 라이브러리는 일반적으로 /usr/include에 헤더파일이 들어가며, /usr/lib에 .so파일과 .a파일이 들어간다.