Pergunta

Eu tenho um arquivo binário no Linux .. tclsh8.4. Depende de certos arquivos TCL*.SO.

  1. Existe uma maneira de obter essas informações do próprio arquivo binário?

  2. Os arquivos Tcl*.so nos quais o TCLSH8.4 binário depende está em outro diretório com permissão limitada. O que devo fazer com o arquivo binário para usar os mesmos arquivos .so de algum outro local?

Apenas copiar os arquivos .So no mesmo local funcionaria?

Foi útil?

Solução

Usar ldd por esta.

Copiar os objetos compartilhados não funcionaria, pois o carregador Linux procura apenas objetos compartilhados em diretórios especificados em /etc/ld.so.conf. Você precisaria usar $LD_LIBRARY_PATH Para dizer ao carregador onde encontrar objetos compartilhados extras.

Outras dicas

Para ver as dependências do arquivo .So dinâmico, você pode usar o ldd comando. Para obter informações sobre o arquivo executável, verifique o readelf comando.

Se você precisar verificar as dependências de vários arquivos .so, poderá usar o próximo script:

#!/bin/bash
# dependencies.sh

# Needs to specify the path to check for .so dependencies
if [ $# -ne 1 ] 
then
   echo 'You need to specify the path'
   exit 0
fi

path=$1

for file in "$(find $path -name '*.so')"
do
   ldd $file
done

exit 0

Espero que ajude.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top