[완료] 데비안에 library를 수동 설치를 했습니다.

parrier의 이미지

데비안 pkg 를 구해서 까는 방법이 가장 편한 방법이었을텐데도 불구하고,

인터넷 연결이 막혀 있어서, 씨디로 구하고 직접 tar.gz을 구해서 깔고 하다보니(여차저차)

libdwarf 라는 패키지를 tar.gz로 다운로드 받아서 설치했습니다.

/usr/local/lib라는 디렉토리에 설치했는데요.

이 디렉토리에는

libelf.a도 같이 존재합니다.(다른 패키지)

헌데 libdwarf.a는 프로그램에서 인식을 하지 못하네요. libelf.a는 인식하는데 말이지요.

예를 들면 프로그램 코드에

[code]
#include
#include
#include
[/code]
이렇게 세개를 추가했을 경우, 3번째 라인은 아무 에러 없이 넘어가는데 1,2줄 같은 경우는 에러를

발생시킵니다. 그런 파일이나 디렉토리를 찾을 수 없다구요.

#include"libdwarf/libdwarf.h"로 바꿔서 해보긴 했습니다만, 디렉토리에 파일이 있다고 해도

연관성이 없어서 그런지 에러를 발생시키네요. 데비안 리눅스에서 따로 라이브러리를 등록하거나 관리하는 것이 있나요?

(헉, 내용이 깨졌네요. 태그라 그런 듯. 다시 추가합니다.)

feanor의 이미지

따로 관리하는 것은 없습니다. /usr/local 아래에 설치하셨다면 다 잘 찾아져야 맞습니다.

라키시스의 이미지

헤더화일들이 있는 경로를 컴파일하면서 지정해 주세요.
gcc 라면, 아마 -I 옵션일 겁니다.

parrier의 이미지

추가 해서 했더니 헤더 파일은 찾는 것 같은데요.

라이브러리적인 차원에서 접근은 못하는 것 같습니다.

undefined reference to 'elf_getscn'이라는 오류가 뜨네요.

#include "libdwarf/libdwarf.h"로 지정했을 때와 같은 오류인데요.

이것 참 ..... 난해하네요 T.T

-_-v

parrier의 이미지

해당 디렉토리의 다른 유틸의 Makefile을 봤더니, 경로 지정이 되어 있더군요.

자세히 비교해보면서 하나하나 확인했더니 지적하신대로 -I를 통해 정확히 지정해주어야 하는 것이더라구요.

미숙한 점 지적해 주셔서 정말 감사합니다^^

-_-v

라키시스의 이미지

말씀하신 오류는 컴파일러 오류가 아닌 linker 오류이고요,
이는 -l(소문자 l) 옵션으로 링크하고자 하는 라이브러리를 정확히 명시해 주시고,
-L (대문자 L) 옵션으로 linker 가 라이브러리를 검색할 디렉토리을 명시해 주시면 해결됩니다.

gcc 매뉴얼에 해당 옵션들의 의미가 자세히 나와 있으니 참조해 보시면 도움이 될 것입니다.

그 외에, runtime 에 저 비슷한 오류가 나는 경우가 있는데,
LD_LIBRARY_PATH 로 googling 을 좀 해 보시면 많은 정보를 얻으실 수 있을 것입니다.

이와 관련된 주제에 대해 자세히 다룬 linkers and loaders (어쩌고 Levine 이던가 하는 사람이 저자입니다) 라는 책도 있으니 한번 읽어 보시면 도움이 많이 될 겁니다.

parrier의 이미지

저는 그냥 특정 라이브러리만 이용하는 것인 줄 알았는데 그것이 아닌가 보네요.

상세한 설명 정말 감사합니다 ^!!^

-_-v

댓글 달기

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