다음 이전 차례

2. 정적 라이브러리

정적 라이브러리는 단지 통상의 오브젝트 화일을 모은것이다. 통상적으로 정 적 라이브러리는 .a라는 접미어로 끝난다. 이 오브젝트 집합은 ar(archiver) 프로그램에 의해서 생성된다. 정적 라이브러리는 공유 라이브러리가 가지는 장 점들 때문에 이제는 옛날처럼 그렇게 많이 사용되어 지지는 않는다. 그렇지만 아직도 사용되어 지고 있고 역사적으로 가장먼저 존재했고 설명이 간단하다. 정적 라이브러리는 재컴파일없이 프로그램에 링크될수 있기 때문에 재컴파일 에 필요한 시간이 절약될수 있다. 요즘은 컴퓨터의 빠른 실행시간때문에 이런 재컴파일에 드는 시간 절약은 옛날처럼 그렇게 중요한 이유가 될수는 없을 것이다. 정적 라이브러리는 개발자들이 소스코드의 재공없이 프로그래머들로 하여금 링크하여 사용하도록 할때는 가끔씩 유용한 것이된다. (이때 라이브러 리의 판매자는 이익이지만 라이브러리를 이용하고자 하는 프로그래머들에게 는 유용한것이 아니다.) 이론상으로 실행파일에 링크되는 정적 ELF 라이브러 리 코드는 1-5%정도 빨리 수행되어져야하나 실제에 있어서는 다른 여러가지 복합적인 이유로 인하여 이런 예는 잘 맞지 않는것 같다.

정적 라이브러리를 생성하거나 기존의 정적 라이브러리에 부가적 오브젝트 파일을 추가할 경우 다음의 명령을 사용한다.

ar rcs my_library.a file1.o file2.o 위의 예의 명령은 file1.o file2.o라는 오브젝트 파일을 mylibrary.a에 추가하 거나 존재하지 않을경우 이 파일을 생성한다. 정적 라이브러리 생성과 관련한 더 이상의 정보는 ar(1)을 보기 바란다.

정적 라이브러리를 당신이 만들었다면 사용하기를 원할 것이다. 이를 사용하 려면 실행 프로그램을 생성하기 위한 컴파일과 링크과정의 한 부분에 이 파 일을 포함시키면 된다. 만약에 gcc(1)을 사용하여 실행파일을 만든다면 -l 옵 션을 사용하여 당신이 만든 라이브러리를 명시하면 된다. (info:gcc을 참조하 면 더 많은 정보를 얻을수 있음). 링커인 ld(1)를 바로 사용하여도(-l,똔느 -L 옵션) 되나 ld(1)의 인터페이스가 자주 변하므로 gcc(1)을 쓰는 것이 더 나 을 것이다.


다음 이전 차례