라이브러리 사용하는 방법

살자의 이미지

안녕하세요..
언제나 초보입니다.
제가 라이브러리를 사용하려고 하는데요.. 리눅스에서 제공하는것 말구여..
라이브러리를 사용하려면 커널에 등록을 해야하지 않나여..
등록은 어떻게 하는지 그리고 사용은 어떻게 하는지여..
초보라 질문도 답답한점 죄송합니다.
그럼 고수님들의 답변 기다리겠습니다.
수고하세요.^^

pynoos의 이미지

.a 는 static library 또는 archive 라 하구요
so 는 shared object 라고 하지요.

linux 배포판에서 제공하는 것 외에 어떤 것을 사용하시든지..
커널에 등록하는 것은 아닙니다.

단지 적당한 자리에 있고, 적당한 때에 link 되면 ... 그게 다 이지요.

sonstar의 이미지

1. /etc/ld.so.conf 에 사용할 library가 있는 경로를 등록 합니다.

2. ldconfig 를 실행 합니다.

scobyseo의 이미지

만약 $path/libzzz.a 라는 파일로 존재한다면,
컴파일 시에

gcc main.c -L $path -l zzz

라고 하면 그 내용을 사용할 수 있습니다.

물론 소스 파일에서는 저 라이브러리에 있는 헤더파일이 포함되어야 하구요.

좀더 이해하기 쉬우라고 써봤습니다만 --;

서명:
이것은 올리는 글에 첨부될 사인 문구입니다. 제한은 255 글자입니다

shshin의 이미지

제가 무지하게 초보인디...어제..제가 공부한게 있길래..한번씁니다..ㅡㅡ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 페이지를 한번 보시는게...^^*

송지석의 이미지

shshin wrote:
(나이먹구 책보구 독학하려니 힘들군요...아~ 전 생업은 있고 프밍을 취미인지라..)

앗 부럽군요.

전 지금 생업이 이거라..

아니 생업이 아니라 병업이랄까.. (대학 졸업하고 병특으로 근무중..)

취미로 플밍을 하실 수 있다는 게 참 부럽네요. 자신의 여유를 사용하여 세계에 봉사할 수 있는..

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <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].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <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].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <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].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <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].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.