LINUX.ORG.RU

shared libraries


0

1

Привет!

Юзаю qtiplot на fedora 15 x86_64.

Вылетает с глюком:

 qtiplot: undefined symbol: _ZN2mu14ParserCallbackC1EPFdddEbiNS_8ECmdCodeE
Я погуглил, нашел утилиту readelf и она выдала такое:

readelf -d /./usr/bin/qtiplot 

Dynamic section at offset 0x633798 contains 44 entries:
  Tag        Type                         Name/Value
 0x0000000000000001 (NEEDED)             Shared library: [libmuparser.so.0]
 0x0000000000000001 (NEEDED)             Shared library: [libgsl.so.0]
 0x0000000000000001 (NEEDED)             Shared library: [libgslcblas.so.0]
 0x0000000000000001 (NEEDED)             Shared library: [libpython2.7.so.1.0]
 0x0000000000000001 (NEEDED)             Shared library: [libpng12.so.0]
 0x0000000000000001 (NEEDED)             Shared library: [libEmfEngine.so.1]
 0x0000000000000001 (NEEDED)             Shared library: [libQTeXEngine.so.1]
 0x0000000000000001 (NEEDED)             Shared library: [libquazip.so.1]
 0x0000000000000001 (NEEDED)             Shared library: [libz.so.1]
 0x0000000000000001 (NEEDED)             Shared library: [liborigin2.so.1]
 0x0000000000000001 (NEEDED)             Shared library: [libQtAssistantClient.so.4]
 0x0000000000000001 (NEEDED)             Shared library: [libpthread.so.0]
 0x0000000000000001 (NEEDED)             Shared library: [libGLU.so.1]
 0x0000000000000001 (NEEDED)             Shared library: [libGL.so.1]
 0x0000000000000001 (NEEDED)             Shared library: [libQtSvg.so.4]
 0x0000000000000001 (NEEDED)             Shared library: [libQt3Support.so.4]
 0x0000000000000001 (NEEDED)             Shared library: [libQtXml.so.4]
 0x0000000000000001 (NEEDED)             Shared library: [libQtOpenGL.so.4]
 0x0000000000000001 (NEEDED)             Shared library: [libQtGui.so.4]
 0x0000000000000001 (NEEDED)             Shared library: [libQtNetwork.so.4]
 0x0000000000000001 (NEEDED)             Shared library: [libQtCore.so.4]
 0x0000000000000001 (NEEDED)             Shared library: [libstdc++.so.6]
 0x0000000000000001 (NEEDED)             Shared library: [libm.so.6]
 0x0000000000000001 (NEEDED)             Shared library: [libgcc_s.so.1]
 0x0000000000000001 (NEEDED)             Shared library: [libc.so.6]
 0x000000000000000c (INIT)               0x442fe0
 0x000000000000000d (FINI)               0x8c5918
 0x000000006ffffef5 (GNU_HASH)           0x400260
 0x0000000000000005 (STRTAB)             0x415190
 0x0000000000000006 (SYMTAB)             0x402740
 0x000000000000000a (STRSZ)              110471 (bytes)
 0x000000000000000b (SYMENT)             24 (bytes)
 0x0000000000000015 (DEBUG)              0x0
 0x0000000000000003 (PLTGOT)             0xc33eb8
 0x0000000000000002 (PLTRELSZ)           65232 (bytes)
 0x0000000000000014 (PLTREL)             RELA
 0x0000000000000017 (JMPREL)             0x433110
 0x0000000000000007 (RELA)               0x431b08
 0x0000000000000008 (RELASZ)             5640 (bytes)
 0x0000000000000009 (RELAENT)            24 (bytes)
 0x000000006ffffffe (VERNEED)            0x4319f8
 0x000000006fffffff (VERNEEDNUM)         5
 0x000000006ffffff0 (VERSYM)             0x430118
 0x0000000000000000 (NULL)               0x0

Я так понимаю, NEEDED - это зависимости, библиотеки, которых прога не находит. Берем, например, первую строку - 0x0000000000000001 (NEEDED) Shared library: [libmuparser.so.0]. ШСХ, я не проверял остальные, но muparser стоит, и libmuparser.so.0 проверил поиском - есть. А readelf пишет NEEDED. Или я не так понимаю. /usr/lib64/ в LD_LIBRARY_PATH добавил, все равно пишет NEEDED.

Шо делать?


NEEDED просто означает, что бинарник хочет такую библиотеку.

geekless ★★ ()
Ответ на: комментарий от andy_s

к стати, я на другой машине такое видел, пакет есть, девел-пакет к нему есть, конфигуре их требует - в чем подвох?

andy_s ()
Ответ на: комментарий от andy_s

В багзилле нет таких открытых багов (https://bugzilla.redhat.com/buglist.cgi?component=qtiplot), значит в текущей федоре все в порядке скорее всего.
А у вас несоответствие версий библиотек и бинарика qtiplot (точнее библиотек, с которыми он был собран). Очевидно для начала стоит обновить всю систему из репозиториев, если этого еще не сделано.

Tayler ★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.