Ich habe ein Binärprogramm, das unter Ubuntu 12.04 ausgeführt werden soll. Es hat eine gemeinsame Objektabhängigkeit. pmvs ist der Name des Programms
$ ldd pmvs
linux-vdso.so.1 => (0x00007fff043c3000)
libXext.so.6 => /usr/lib/x86_64-linux-gnu/libXext.so.6 (0x00007fa14dc9a000)
libX11.so.6 => /usr/lib/x86_64-linux-gnu/libX11.so.6 (0x00007fa14d964000)
libjpeg.so.62 => not found
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fa14d747000)
liblapack.so.3 => not found
libgsl.so.0 => not found
libgslcblas.so.0 => not found
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fa14d449000)
libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007fa14d149000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007fa14cf33000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fa14cb73000)
libxcb.so.1 => /usr/lib/x86_64-linux-gnu/libxcb.so.1 (0x00007fa14c955000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fa14c751000)
/lib64/ld-linux-x86-64.so.2 (0x00007fa14dece000)
libXau.so.6 => /usr/lib/x86_64-linux-gnu/libXau.so.6 (0x00007fa14c54d000)
libXdmcp.so.6 => /usr/lib/x86_64-linux-gnu/libXdmcp.so.6 (0x00007fa14c347000)
Es kann anscheinend libjpeg.so nicht finden. Ich bin jedoch sicher, dass es existiert und sich unter befindet /usr/lib/x86_64-linux-gnu/libjpeg.so
. Wie stelle ich den Linker-Pfad so ein, dass dieser Speicherort enthalten ist?
Antwort1
Die Installation einer älteren Version von libjpeg löste mein Problem
sudo apt-get install libjpeg62:i386
sudo apt-get install libjpeg62
Antwort2
Da andere Bibliotheken erfolgreich in gefunden werden /usr/lib/x86_64-linux-gnu
, besteht Ihr Problem nicht darin, wie Sie diesen Speicherort angeben, sondern wahrscheinlich darin, dass die Versionsnummer der installierten Bibliothek nicht 62 ist, wie das Programm sucht.
Sie haben zwei Möglichkeiten: Entweder Sie suchen und installieren eine alte Version der fehlenden Bibliothek oder Sie fügen die fehlende Bibliothek (was viel einfacher und erfolgversprechender ist) einfach als Link zur Version der installierten Bibliothek hinzu.
Ubuntu 14.04 hat jetzt libjpeg.so.8.0.2
, also ist etwas drastisch anders. Ich habe jedoch einen
/usr/lib/vmware-installer/2.1.0/lib/lib/libjpeg.so.62/libjpeg.so.62
auf meinem 14.04-System, also haben Sie vielleicht etwas Ähnliches (ich habe vmplayer installiert). Wenn die libjpeg.8.0.2
Bibliothek für den Link nicht funktioniert, suchen Sie nach etwas, das vmware install noch übrig ist (der Player ist ein kostenloser Download, falls Sie ihn benötigen).
Antwort3
In meinem Fall, dass apt-get nicht funktionierte, habe ich Folgendes getan:
git clone https://github.com/LuaDist/libjpeg.git
und dann:
./configure
make
make install