[질문] 라이브러리 관해

naisr00t의 이미지

여지것 아무생각없이 헤더파일 인클루드 하고 썼습니다.

그런데, 리눅스에서 궁금한게 하나 생겼습니다.
.a 와 .so 차이를 모르겠고, 그게 왜 필요한지 모르겠습니다.

그러니까. 라이브러리 하면 헤더파일을 얘기하는지 알고 있었는데,
/usr/lib 디렉토리가 있더군요. 그리고 lib**라고 시작되는 파일들이 엄청
많다는 거... 그 용도가 무엇인지요? 헤더파일이 라이브러리가 그것으로 족하지 않나요? 컴파일 타임때라던가, 런타임때라던가 다 만족할 듯 한데...

설명좀 해주시면 감사하겠습니다.

추신: 초보에게 빛을 ...

불량청년의 이미지

.a로 끝나는건 정적라이브러리라고 해서 컴파일시에 실행파일에

해당 루틴의 라이브러리 내용이 들어갑니다. 고로 실행파일 용량이

커지겠죠.

.so 파일은 동적라이브러리로 컴파일시 실행파일 속에 들어가지

않고, 프로그램 실행하면서 필요한 루틴이 있다면 그 라이브러리를

불러 사용하게 됩니다. 고로 같은 프로그램이라도 실행파일 용량에

차이가 나겠죠. 답볍이 됐나 모르겠네요.

H/W가 컴퓨터의 심장이라면 S/W는 컴퓨터의 영혼이다!

댓글 달기

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 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.