안녕하세요.. 언제나 초보입니다. 제가 라이브러리를 사용하려고 하는데요.. 리눅스에서 제공하는것 말구여.. 라이브러리를 사용하려면 커널에 등록을 해야하지 않나여.. 등록은 어떻게 하는지 그리고 사용은 어떻게 하는지여.. 초보라 질문도 답답한점 죄송합니다. 그럼 고수님들의 답변 기다리겠습니다. 수고하세요.^^
.a 는 static library 또는 archive 라 하구요 so 는 shared object 라고 하지요.
linux 배포판에서 제공하는 것 외에 어떤 것을 사용하시든지.. 커널에 등록하는 것은 아닙니다.
단지 적당한 자리에 있고, 적당한 때에 link 되면 ... 그게 다 이지요.
---http://coolengineer.com
1. /etc/ld.so.conf 에 사용할 library가 있는 경로를 등록 합니다.
2. ldconfig 를 실행 합니다.
만약 $path/libzzz.a 라는 파일로 존재한다면, 컴파일 시에
gcc main.c -L $path -l zzz
라고 하면 그 내용을 사용할 수 있습니다.
물론 소스 파일에서는 저 라이브러리에 있는 헤더파일이 포함되어야 하구요.
좀더 이해하기 쉬우라고 써봤습니다만 --;
서명: 이것은 올리는 글에 첨부될 사인 문구입니다. 제한은 255 글자입니다
제가 무지하게 초보인디...어제..제가 공부한게 있길래..한번씁니다..ㅡㅡ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 페이지를 한번 보시는게...^^*
(나이먹구 책보구 독학하려니 힘들군요...아~ 전 생업은 있고 프밍을 취미인지라..)
앗 부럽군요.
전 지금 생업이 이거라..
아니 생업이 아니라 병업이랄까.. (대학 졸업하고 병특으로 근무중..)
취미로 플밍을 하실 수 있다는 게 참 부럽네요. 자신의 여유를 사용하여 세계에 봉사할 수 있는..
rommance.net
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
.a 는 static library 또는 archive 라 하구요so
.a 는 static library 또는 archive 라 하구요
so 는 shared object 라고 하지요.
linux 배포판에서 제공하는 것 외에 어떤 것을 사용하시든지..
커널에 등록하는 것은 아닙니다.
단지 적당한 자리에 있고, 적당한 때에 link 되면 ... 그게 다 이지요.
---
http://coolengineer.com
1. /etc/ld.so.conf 에 사용할 library가 있는 경로를
1. /etc/ld.so.conf 에 사용할 library가 있는 경로를 등록 합니다.
2. ldconfig 를 실행 합니다.
만약 $path/libzzz.a 라는 파일로 존재한다면,컴파일 시에
만약 $path/libzzz.a 라는 파일로 존재한다면,
컴파일 시에
gcc main.c -L $path -l zzz
라고 하면 그 내용을 사용할 수 있습니다.
물론 소스 파일에서는 저 라이브러리에 있는 헤더파일이 포함되어야 하구요.
좀더 이해하기 쉬우라고 써봤습니다만 --;
서명:
이것은 올리는 글에 첨부될 사인 문구입니다. 제한은 255 글자입니다
제가 무지하게 초보인디...어제..제가 공부한게 있길래..한번씁니다..ㅡ
제가 무지하게 초보인디...어제..제가 공부한게 있길래..한번씁니다..ㅡㅡ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 페이지를 한번 보시는게...^^*
지나가다가..
앗 부럽군요.
전 지금 생업이 이거라..
아니 생업이 아니라 병업이랄까.. (대학 졸업하고 병특으로 근무중..)
취미로 플밍을 하실 수 있다는 게 참 부럽네요. 자신의 여유를 사용하여 세계에 봉사할 수 있는..
rommance.net
댓글 달기