Implementarea aplicației Linux cu biblioteci specifice

Implementarea aplicației Linux cu biblioteci specifice

Î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.

Articole similare