Libjpeg não encontrado pelo meu programa, embora exista

Libjpeg não encontrado pelo meu programa, embora exista

Eu tenho um programa binário para rodar no Ubuntu 12.04. Ele compartilhou dependência de objeto. pmvs é o nome do programa

   $ 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)

Aparentemente, não é possível encontrar libjpeg.so. No entanto, tenho certeza de que existe e está em /usr/lib/x86_64-linux-gnu/libjpeg.so. Como defino o caminho do vinculador para incluir esse local?

Responder1

Instalar uma versão mais antiga do libjpeg resolveu meu problema

sudo apt-get install libjpeg62:i386
sudo apt-get install libjpeg62

Responder2

Como outras bibliotecas estão sendo encontradas com sucesso /usr/lib/x86_64-linux-gnu, seu problema não é como especificar esse local, mas provavelmente o número da versão da biblioteca instalada não é 62 como o programa está procurando.

Você tem duas opções: encontrar e instalar uma versão antiga da biblioteca ausente ou muito mais fácil e com maior probabilidade de sucesso é apenas adicionar a biblioteca ausente como um link para a versão da biblioteca instalada.

Agora o Ubuntu 14.04 possui libjpeg.so.8.0.2, então algo está drasticamente diferente. No entanto, eu tenho um /usr/lib/vmware-installer/2.1.0/lib/lib/libjpeg.so.62/libjpeg.so.62no meu sistema 14.04, então talvez você tenha algo semelhante (eu tenho o vmplayer instalado). Se a libjpeg.8.0.2biblioteca não funcionar para o link, procure por algo que tenha sido instalado no VMware (o download do player é gratuito, se você precisar).

Responder3

No meu caso, o apt-get não funcionou, fiz o seguinte:

git clone https://github.com/LuaDist/libjpeg.git

e então:

./configure
make 
make install

informação relacionada