ldd diz não encontrado mas o arquivo .so está em / usr / lib

1

Quando digito ldd no meu arquivo executável, há um aviso not found .

libCmp.so => not found
libstdc++.so.6 => /usr/lib/arm-linux-gnueabihf/libstdc++.so.6 (0xb6ed7000)
libm.so.6 => /lib/arm-linux-gnueabihf/libm.so.6 (0xb6e6c000)
libgcc_s.so.1 => /lib/arm-linux-gnueabihf/libgcc_s.so.1 (0xb6e48000)
libc.so.6 => /lib/arm-linux-gnueabihf/libc.so.6 (0xb6d63000)

Mas esse arquivo so está em /usr/lib . Quando digito file libCmp.so , notei que não há informações buildID na saída.

libCmp.so: ELF 32-bit LSB shared object, ARM, version 1 (SYSV), dynamically linked, not stripped

saída de file libgcc_s.so.1

libgcc_s.so.1: ELF 32-bit LSB shared object, ARM, version 1 (SYSV), dynamically linked, BuildID[sha1]=0x6b7de7cba96b907b2961892b76c176b1ddbf4bee, stripped

Isso é um problema? e como pode adicionar essa informação ao arquivo?

Eu tentei digitar ldconfig -v |grep libCmp em /usr/lib

/sbin/ldconfig: Path '/lib/arm-linux-gnueabihf' given more than once
/sbin/ldconfig: Path '/usr/lib/arm-linux-gnueabihf' given more than once
/sbin/ldconfig: /lib/arm-linux-gnueabihf/ld-2.13.so is the dynamic linker, ignoring

    libCmp.so -> libCmp.so

Mas nada muda

    
por user4757345 18.06.2015 / 11:29

2 respostas

3

reconstrua as ligações do tempo de execução do vinculador dinâmico (como root):

ldconfig -v | grep libCmp

e deveria a) imprima sua lib (significando que foi encontrada) b) instalar corretamente os links simbólicos necessários, para que a biblioteca seja encontrada no futuro

um build-id ausente não é problema.

    
por 18.06.2015 / 11:51
1

Se você adicionou recentemente o libCmp.

Como root, você pode tentar:

ldconfig -v

ldconfig creates the necessary links and cache to the most recent shared libraries found in the directories specified on the command line, in the file /etc/ld.so.conf, and in the trusted directories (/lib and /usr/lib). The cache is used by the run-time linker, ld.so or ld-linux.so

O -v fará com que ldconfig liste todos os arquivos que ele liga no cache. Você poderia então ver a saída e confirmar a presença de libCmp.

    
por 18.06.2015 / 11:51

Tags