Libjpeg wird von meinem Programm nicht gefunden, obwohl es existiert

Libjpeg wird von meinem Programm nicht gefunden, obwohl es existiert

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.62auf meinem 14.04-System, also haben Sie vielleicht etwas Ähnliches (ich habe vmplayer installiert). Wenn die libjpeg.8.0.2Bibliothek 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

verwandte Informationen