Prosíme přihlašte se nebo zaregistrujte.

Přihlašte se svým uživatelským jménem a heslem.
Vaše pomoc je stále potřeba!

Autor Téma: Jak nastavit cestu ke sdilenym knihovnam?  (Přečteno 1625 krát)

optimizer

  • Návštěvník
  • Příspěvků: 6
Jak nastavit cestu ke sdilenym knihovnam?
« kdy: 16 Září 2007, 18:29:43 »
Ahoj,
Snazim se prenest jeden program napsany v C z jednoho linuxoveho stroje na jiny. Nemam k dispozici zadne balicky, proto pouze kopiruji. Pomoci prikazu ldd jsem si zjistil zavislosti a tak vim, ktere knihovny program ke svemu behu potrebuje. Knihovny jsou ale ulozeny v nestandardnim adresari a proto program nelze spustit. Pouziju li prikaz:

lib/ld-linux.so.2 --library-path CESTA_KE_KNIHOVNAM MUJ_PROGRAM,

knihovny se nactou a program se spusti. Problem je ale v tom, ze bezici porgram vola dalsi spustitelne binarni soubory a ty opet nevedi, kde dane knihovny hledat.

Existuje moznost nastaveni promenne prostredi LD_LIBRARY_PATH, ale to asi nebude to prave reseni.

Prosim o radu, jak spravne tento program nainstalovat.

Dekuji !!!

drat

  • Aktivní člen
  • *
  • Příspěvků: 394
Jak nastavit cestu ke sdilenym knihovnam?
« Odpověď #1 kdy: 16 Září 2007, 20:16:07 »
Nejsem si uplne jisty jestli je ted reknu spravne ten postup. Vytvorit /etc/ld.so.conf a vlozit do nej cestu k adresari s knihovnami, popripade cesty oddelene treba novym radkem. A pak spustit ldconfig.

optimizer

  • Návštěvník
  • Příspěvků: 6
Jak nastavit cestu ke sdilenym knihovnam?
« Odpověď #2 kdy: 17 Září 2007, 09:10:31 »
Ahoj,
diky za radu.

Provedl jsem pridani cesty ke knihovnam do souboru /etc/ld.so.conf a spustil prikaz ldconfig.
Nova cesta je /lib/k3

Nyni se zda byt vypis prikazu ldd v poradku:

        linux-gate.so.1 =>  (0xffffe000)
        libborcrtl.so.1 => /lib/k3/libborcrtl.so.1 (0x40027000)
        libborqt-6.9.0-qt2.3.so => /lib/k3/libborqt-6.9.0-qt2.3.so (0x40134000)
        libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0x40864000)
        libdl.so.2 => /lib/libdl.so.2 (0x4095b000)
        libborunwind.so.6.0 => /lib/k3/libborunwind.so.6.0 (0x4095f000)
        libborstl.so => /lib/k3/libborstl.so (0x40966000)
        libm.so.6 => /lib/libm.so.6 (0x40b64000)
        libpthread.so.0 => /lib/libpthread.so.0 (0x40b88000)
        libc.so.6 => /lib/libc.so.6 (0x40b9a000)
        libXext.so.6 => /usr/X11R6/lib/libXext.so.6 (0x40cb2000)
        libSM.so.6 => /usr/X11R6/lib/libSM.so.6 (0x40cc0000)
        libICE.so.6 => /usr/X11R6/lib/libICE.so.6 (0x40cc9000)
        libjpeg.so.62 => /usr/lib/libjpeg.so.62 (0x40ce2000)
        /lib/ld-linux.so.2 (0x40000000)

Po spusteni programu se ale objevi nasledujici hlaska:

        libborqt-6.9-qt2.3.so: cannot open shared object file: No such file or directory

Pozor libborqt-6.9-qt2.3.so je link na libborqt-6.9.0-qt2.3.so a je rovnez v adersari /lib/k3.
Cely adresar /lib/k3 vypada nasledovne:

-rwxr--r--     1 adam users      93 2007-09-08 15:13 libborcrtl.so
lrwxrwxrwx  1 adam users      25 2007-09-17 07:48 libborcrtl.so.1 -> /lib/k3/libborcrtl.so.1.0
-rwxr--r--     1 adam users     61536 2007-09-08 15:13 libborcrtl.so.1.0
-rwxr--r--     1 adam users     7526184 2007-09-08 15:13 libborqt-6.9.0-qt2.3.so
lrwxrwxrwx  1 root root          31 2007-09-17 12:41 libborqt-6.9-qt2.3.so -> /lib/k3/libborqt-6.9.0-qt2.3.so
lrwxrwxrwx  1 adam users      24 2007-09-17 07:48 libborstl.so -> /lib/k3/libborstl.so.1.0
-rwxr--r--      1 adam users   1403344 2007-09-08 15:13 libborstl.so.1.0
lrwxrwxrwx  1 adam users      27 2007-09-17 07:48 libborunwind.so -> /lib/k3/libborunwind.so.6.0
lrwxrwxrwx  1 adam users      27 2007-09-17 07:48 libborunwind.so.6 -> /lib/k3/libborunwind.so.6.0
-rwxr--r--      1 adam users   27125 2007-09-08 15:13 libborunwind.so.6.0


Nejaky napad?

carpathian

  • Aktivní člen
  • *
  • Příspěvků: 123
Jak nastavit cestu ke sdilenym knihovnam?
« Odpověď #3 kdy: 17 Září 2007, 09:50:12 »
Mozna to zkusit spustit s strace. Dalo by se tak zjistit odkud se vlastne snazi tu knihovnu naladovat.

optimizer

  • Návštěvník
  • Příspěvků: 6
Jak nastavit cestu ke sdilenym knihovnam?
« Odpověď #4 kdy: 17 Září 2007, 10:40:16 »
Ahoj,

strace ukaze, ze program tuto knihovnu hleda vsude jinde, jenom ne v /lib/k3.

Pritom ldd odkaz najde....

Stale nevim co s tim.

 

Provoz zaštiťuje spolek OpenAlt.