동적 라이브러리에 관해서..

CH331의 이미지

우선 만들려는것의 개요입니다.

B라는 프로그램은 IPC메세지를 A로 전송합니다

A라는 프로그램은 B라는 프로그램으로 부터 IPC 통신을 통해서 메세지를 수신합니다.

IPC메세지에는 함수명과,라이브러리명 등등 여러가지 정보가 포함되어있습니다.

만약 B가 libmy.so 라는 라이브러리와, myfunc 라는 함수명을 알려주었다면

A는 해당 라이브러리를 오픈하고 myfunc을 호출하여 사용합니다

동적라이브러리에 관한 내용은 아래 링크를 참고하였고
http://www.joinc.co.kr/modules/moniwiki/wiki.php/Site/C/Documents/Make_Library

여기에 있는 함수들을 이용하여 동적라이브러리를 썼습니다.

위 링크의 예제는 1+2 과 같은 사용자의 입력이지만 여기서는 IPC메세지 수신으로 대체된것만이 다른점입니다.

자, 그런데 제가 여기서 추가하고자 하는 것은 라이브러리를 만들때 또 다른 라이브러리 사용을

위해서는 어떤식인가 하는 것입니다.

링크의 예제에서는

mysum의 코드에는 main이 없습니다. 목적코드만 필요하기 때문에 main이 필요가 없죠.

[root@localhost test]# gcc -fPIC -c mysum.c
[root@localhost test]# gcc -shared -W1,-soname,libmysutff.so.1 -o libmysum.so.1.0.1 mysum.o
[root@localhost test]# cp libmysum.so.1.0.1 /usr/local/lib
[root@localhost test]# ln -s /usr/local/lib/libmysum.so.1.0.1 /usr/local/lib/libmysum.so

위와같이 라이브러리를 만들었고 첫줄에서 mysum.o와 같은 목적코드를 만들었습니다.

저는 이 과정에 gcc -fPIC -c mysum.c -ldl -pthread ... 이런것들을 추가하고싶습니다.

그래서 mysum libmysum.so 가 저런 라이브러리들과 링크되길 바랍니다.

gcc -fPIC -c mysum.c -ldl -pthread -L경로들.. 을 추가하였고

mysum.h에 제가 원하는 해더들도 추가하였으며

-ㅣ 과 -L로 링크와 인클루드를 하였음에도 컴파일 오류가납니다.

정리하자면

B는 A로 IPC메세지를 보냄

A는 메세지를 받아서 라이브러리오픈 , 라이브러리 안의 함수실행

그 함수 안에는 -l 과 -L 그리고 해더로 추가해논 함수들을 써먹고싶으나

어떤식으로 컴파일하여 목적으로그램을 만들고, 라이브러리로 만드는지 방법을 모르겠습니다.

알려주세요 고수님들.

질문이 좀 두서없지만.. 부탁드립니다.

댓글 달기

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