În acest articol voi împărtăși cu dvs. informații despre modul de rulare a aplicației cu anumite biblioteci.
Să presupunem că aveți o aplicație care a fost compilată sub Ubuntu 12.04 și trebuie să o executați pe Debian Squeeze.
La pornire, puteți vedea diferite mesaje, de exemplu, aici este:
MyApplication: /lib/libc.so.6: versiunea `GLIBC_2.15 'nu a fost găsită (cerută de ./MyApplication)
Se spune că nu există biblioteci necesare pentru rularea aplicației.
Pentru a obține lista de biblioteci necesare pentru a rula aplicația, utilizați comanda ldd:
$ ldd MyApplication
libm.so.6 (GLIBC_2.2.5) => /lib/libm.so.6
libc.so.6 (GLIBC_2.3.4) => /lib/libc.so.6
libc.so.6 (GLIBC_2.4) => /lib/libc.so.6
libc.so.6 (GLIBC_2.15) => nu a fost găsit
libc.so.6 (GLIBC_2.2.5) => /lib/libc.so.6
După cum puteți vedea, lipsește doar libc.so.6 (GLIBC_2.15).
În acest caz, descărcați libc6 și libc6-dev din Ubuntu 12.04 LTS
Cu ajutorul comenzii dpkg, extrageți conținutul pachetelor deb într-un folder (/ home / user / libs /, de exemplu):
$ dpkg -x libc6-dev_2.15-0ubuntu10.6_amd64.deb / home / utilizator / libs /
$ dpkg -x libc6_2.15-0ubuntu10.6_amd64.deb / home / utilizator / libs /
Și executați aplicația, specificând calea către biblioteci folosind LD_LIBRARY_PATH:
Dacă toate bibliotecile necesare sunt prezente, aplicația va începe.