ar, .a, .so 관련 질문입니다.

하하의 이미지

^__^;;

아주 기초적인 질문입니다.

ar, .a, .so 관련 된 내용입니다.

우선 제가 알고 있는 걸 먼저 써보면.

ar은 archives를 생성할때 사용한다.

.a 는 정적 라이브러리이다.

.so 는 공유 라이브러리이다.

ar로 .a 만 만들어서 사용해 봤습니다.

질문입니다.

- man page에서 말하는 archives란 정확이 무엇을 말하는 건가요??

- .so 는 공유라이브러리인데 그렇다면 shared memory를 사용하여
라이브러리를 만들었다는 건가요? (사실 shared memory를 실제 사용해
본적은 없습니다.) 함수 등등 전부 shared memory 안에 선언하여
사용했다고 생각 할 수 있나요?
.so를 만들려면 ar utility로는 만들 수 없나요?

아주 기초적인 질문인데 저한텐 참 궁금한 내용입니다..

아시는분 있으시면 알려주세요... ^____^;;;;;

즐거운 하루 되세요...

하하의 이미지

ar을 사용해 .so 파일을 만들어 보았습니다. - - ;;

shared memory에 대한 이해가 부족한거 같습니다...

gcc -lthread 이런식으로 라이브러리 링크를 하면

/usr/lib/libpthread.so 가 링크 되느건가요?

아님 /usr/lib/libpthread.a 가 링크 되는건가요?

- - ;; 전체적인 이해 부족으로 인해 질문이 막 파생되네요..

이쁘게 봐주세요... ^^;;

“바람에게도 길은 있다. 나는 비로소 나의 길을 가느니. 길은 언제나 어디에나 있다.”

eminency의 이미지

.so 파일은 shared memory랑은 상관이 없습니다.
.a 파일과 .so 파일의 차이는 컴파일시 라이브러리가 오브젝트에 포함되는지 링크만 되는지의 차이입니다. .so파일은 실행시에 실행 파일이 라이브러리를 참조하면서 실행되는 것이죠.

.a로 컴파일을 하면 컴파일된 코드 크기는 커지고 컴파일 속도도 오래 걸리지만 실행속도가 공유 라이브러리를 쓸 때보다 빨라집니다. .so파일은 그 반대이고...

-l 옵션의 경우는 기본적으로 .so파일이 링크가 되는 걸로 알고 있습니다. -static옵션을 주면 .a로 컴파일을 하구요...

저도 깊은 이해가 없어서 이 정도까지밖에 설명을 못 드리겠군요. :)

노루가 사냥꾼의 손에서 벗어나는 것 같이, 새가 그물치는 자의 손에서 벗어나는 것 같이 스스로 구원하라 -잠언 6:5

lmk378의 이미지

시간을 7년이나 넘어 답변답니다.
shared memory와 shared library를 혼동하신것 같군요^_^

댓글 달기

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
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.