[sts@test01 ar]$ ls
bslib.c  bslib.h

[sts@test01 ar]$ gcc -c bslib.c

[sts@test01 ar]$ ls
bslib.c  bslib.h  bslib.o

[sts@test01 ar]$ ar r libbs.a bslib.o
ar: creating libbs.a

[sts@test01 ar]$ ar t libbs.a
bslib.o


* Makefile 에 아래옵션 추가

LIBS=-L경로 -lbs


-----------------------------------------------------------------------------------------------------------------
아래글의 원문  : http://kldp.org/node/1087

제가 무지하게 초보인디...어제..제가 공부한게 있길래..한번씁니다..ㅡㅡV

/usr/lib 에 보면 라이브러리들이 무지하게 많지요

정적라이브러리 .a 와 동적라이브러리 .so 가 있습니다.

이들은 ar 명령어로 내용을 확인할수 있는데..

우선 습관적으로 man ar 을 쳐보십시요..^^*

거기에 ar(archive) 은 묶음파일을 만들고 조작하고 추출한다라고
써있습니다.

음...우선 구경하나 하면..

$> ar t libc.a | less

이걸로 해당 .o 파일들이 묶어져있음을 알수있습니다.

라이브러리를 만들려면 우선 오브젝트파일이 필요함을 알수있지요

$> gcc -c test_lib.c
이렇게 하면 test_lib.o 파일이 만들어 집니다.

ar 의 r 옵션은 오브젝트를 추가하는거구여 s 옵션은 인덱스를 만든답니다.

$> ar rs libc.a test_lib.o

이렇게 하면 C 표준 라이브러리파일에 집어넣어주는게 됩니다.
오브젝트 파일을 한꺼번에 쭈~욱 쓰셔서 집어넣으셔두 됩니다.

아 ~ 물론 r 옵션으로 libc.a 말구 새로운걸 만드셔두 됩니다.

$> ar rs libhuk.a test_lib.o
이정도로 하죠

그러면 libhuk.a 가 생깁니다.

gcc -o huk_test_lib huk_test.c -lhuk -L.

이정도로 하시면 됩니다.

-lhuk 은 libhuk.a 를 사용하겠다는 의미이고
-L. 은 현재디렉에서 찼겠다는 겁니다. (이거 안해주면 /usr/lib 에서 libhuk.a 를 찾습니다.)

다시 라이브러리를 고치시구 싶으시면 새로 컴파일 하시구

ar rs 로 라이브러리를 갱신 시키시면 됩니다.

대충 이정도 입니다.

공부를 제대로 했나 모르겟군요...ㅡ.ㅡ;;
(나이먹구 책보구 독학하려니 힘들군요...아~ 전 생업은 있고 프밍을 취미인지라..)

나머지 부분은 man 페이지를 한번 보시는게...^^*


'STS' 카테고리의 다른 글

리눅스) umount : device is busy  (0) 2012.02.07
리눅스) 읽기전용 파일 시스템  (0) 2012.02.07

+ Recent posts