O que eu faço com o arquivo .so.0 da biblioteca pré-compilada?

3

Eu fiz o download de uma biblioteca pré-compilada para a qual o nome do arquivo está no formato:

<name>.so.0

Eu entendo isso algum tipo de versionamento? Como uso a biblioteca - preciso usar uma ferramenta para extraí-la? Eu acho que o programa só vai procurar por <name> ao procurar pelo arquivo ..

    
por markmnl 15.09.2014 / 14:51

1 resposta

4

As bibliotecas compiladas são carregadas automaticamente quando um binário é executado. Para isso, os locais definidos em /etc/ld.so.conf são verificados. Na maioria das distribuições, você deve colocar a biblioteca em /usr/local/lib , onde as bibliotecas não instaladas pelo gerenciador de pacotes são armazenadas.

Se você não quiser instalar o sistema de biblioteca inteiro (ou não tiver acesso root), você pode definir LD_LIBRARY_PATH para a pasta que contém seu arquivo .so ao executar seu programa:

LD_LIBRARY_PATH=/path/to/folder_with_so_file ./yourprogram

Com relação ao número da versão: se seu programa procurar explicitamente por .so sem um número, crie um link simbólico (também na pasta lib):

ln -s <name>.so.0 name.so

A maioria das bibliotecas mantém o arquivo com o número de versão mais específico e cria links simbólicos para a versão principal e o nome sem versão (por exemplo, no meu sistema /usr/lib contém os arquivos libjpeg.so , /usr/lib64/libjpeg.so.62 e /usr/lib64/libjpeg.so.62.0.0 , os dois primeiros sendo links simbólicos para o último)

    
por 15.09.2014 / 16:25

Tags