Pergunta

Eu tenho uma biblioteca compartilhada Linux (.So) compilada com uma versão específica da libc (glibc2.4) e preciso usá -la em um sistema com uma versão diferente da libc. Não tenho fontes para a biblioteca em questão, por isso não posso recompilar o novo sistema. De alguma forma, é possível alterar as dependências nessa biblioteca para um LIBC diferente?

Foi útil?

Solução

Se você precisar do .SO em um sistema com um glibc mais antigo, precisará do código -fonte e recompilar/vincular -o com o glibc mais antigo. A alternativa é instalar o glibc necessário no sistema antigo em um local não padrão e ajustar o ld_library_path para o executável que precisa disso .so

Se houver um glibc mais recente, normalmente não deve ser um problema, pois o glibc tende a ser compatível com versões anteriores.

Outras dicas

A menos que sua biblioteca realmente use interfaces que mudaram (improvável), você pode apenas hexade .so Arquivo. Eles são todos texto de qualquer maneira.

O melhor que você pode fazer é compilar a versão antiga do Glibc para o seu sistema e, em seguida, criar seu aplicativo com esse glibc e sua biblioteca compartilhada. Feio embora ...

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