Como usar o arquivo de objeto compartilhado (.so) de 32 bits no RHEL de 64 bits?

1

Eu tenho um arquivo de objeto compartilhado libfault.so para meu aplicativo compilado de 32 bits no RHEL 6.4. Eu quero pré-carregar este arquivo ao iniciar meu aplicativo. Eu coloquei no diretório / usr / local / lib /.

Mas, ao iniciar o aplicativo, estou recebendo o seguinte erro.

ERROR: ld.so: object 'libfault.so' from LD_PRELOAD cannot be preloaded: ignored.

Mas, se eu compilar libfault.so em 64 bits e colocar em / usr / local / lib64 /, não obtenho o erro. Mas o arquivo não está fazendo a função pretendida, pois meu aplicativo é compilado em 32 bits.

    
por stany 09.08.2013 / 21:33

1 resposta

1

Você pode usar a variável de ambiente $LD_LIBRARY_PATH para substituir o caminho de pesquisa do carregador dinâmico ao procurar bibliotecas para carregar.

Para fazer isso temporariamente para um único aplicativo, você pode invocá-lo assim:

$ LD_LIBRARY_PATH=/usr/local/lib <your executable here>

Você pode tornar a alteração mais permanente para sua instância de shell, exportando essa variável:

$ export LD_LIBRARY_PATH=/usr/local/lib

Ajuste os caminhos acima conforme necessário para o local onde seu .so de 32 bits está sendo armazenado.

    
por 10.08.2013 / 01:38