[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
만약 $path/libzzz.a 라는 파일로 존재한다면,
컴파일 시에
gcc main.c -L $path -l zzz
라고 하면 그 내용을 사용할 수 있습니다.
물론 소스 파일에서는 저 라이브러리에 있는 헤더파일이 포함되어야 하구요.
좀더 이해하기 쉬우라고 써봤습니다만 --;
-----------------------------------------------------------------------------------------------------------------글쓴이: shshin 작성 일시: 금, 2003/03/07 - 10:44오전
제가 무지하게 초보인디...어제..제가 공부한게 있길래..한번씁니다..ㅡㅡ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 |