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.62
no meu sistema 14.04, então talvez você tenha algo semelhante (eu tenho o vmplayer instalado). Se a libjpeg.8.0.2
biblioteca 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