공유 라이브러리 사용에 관해 질문...

minsubsim의 이미지

lib~.so 파일을 만들어 사용하려고 하는데, make까지는 아무문제 없다가 실행에서 다음과같은 에러가 발생합니다
error while loading shared libraries: libccl.so: cannot open shared object file: No such file or directory

makefile에는 -L. -lccl로 설정해놨고, 해당 디렉토리에도 libccl.so파일이 제대로 들어가 있습니다

아래는 makefile내용입니다 (자세한 파일 이름들은 삭제했습니다)
CXX = g++
CXXFLAGS = -I/usr/include/mysql -I/usr/include/mysql++ -g

LDFLAGS = -L/usr/lib -L. -lmysqlpp -lmysqlclient -lccl
TARGET =
OBJS =

SRCS = $(OBJS:.o=.cpp)

HEADERS =

$(TARGET): $(OBJS)
$(CXX) -o $@ $^ $(CXXFLAGS) $(LDFLAGS)

.cpp.o: $@
$(CXX) $< -c $(CXXFLAGS)

all: $(SRS) $(HEADERS) $(TARGET)
clean:
rm -f $(OBJS) $(TARGET)

얼마전까지만 해도 실행에 문제가 없었는데.. 대체 왜 이런에러가 나오는걸까요? ㅠㅠㅠ 도움 부탁드립니다!!

klara의 이미지

해당디렉토리라는 곳은 어디를 말씀하시는 건가요?

minsubsim의 이미지

makefile파일이 있는 디렉토리입니다
-L. -lccl로 설정하면 같은 디렉토리에 있는 libccl.so파일을 로드하게된다고 해서 그런식으로 설정해놨습니다

barmi의 이미지

make에는 문제가 없었는데, 실행시에 문제라면 실행환경을 살펴봐야 할 가능성이 클 것으로 보입니다.
고전적으로는 LD_LIBRARY_PATH의 문제,
현재 많은 배포본들은 /etc/ld.so.conf 를 사용합니다.

위 경로들 중에 문제가 되는 so 파일이 존재하는 경로가 포함되어 있는 지를 확인해 보시는 것이 좋을 것 같습니다.

minsubsim의 이미지

제가 추가하려는 so파일은 제가 만든거라.. 아마 없을것 같습니다
LD_LIBRARY_PATH는 환경변수 같은걸로 보이는데 어떤식으로 추가하면되나요?
그리고 다른 컴퓨터에서 사용할 경우 거기서 또 다시 똑같은 설정을 해야할텐데, makefile내용을 고치는걸로 설정을 대신할 방법은 없을까요?

minsubsim의 이미지

방금 ld.so.conf에 해당 디렉토리를 추가하는 방법으로 성공했습니다 감사합니다
하지만 아직 makefile내용을 고치는걸로 설정을 대신할 방법은 없는지 궁금합니다
혹시 방법이 있으면 알려주시면 감사하겠습니다 (_ _)

김정균의 이미지

요즘 배포본은 /etc/ld.so.conf.d 를 제공합니다. 이 디렉토리에 설정을 install시에 넣어 주는 방법이 있을 것이고요. 아니면 Makefile에서만 처리를 하시겠다면, so file 생성시에 rpath를 지정해 주시면 됩니다.

댓글 달기

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