classe ELF errada: erro ELFCLASS32 ao usar 32 bits .so na máquina de 64 bits usando dlopen

3

Eu preciso usar uma biblioteca compartilhada de 32 bits criada por outra pessoa em meu aplicativo de 64 bits no Ubuntu 14.04. Eu recebo o erro dado no título. Eu instalei bibliotecas lib32bz2-1.0 , lib32ncurses5 e lib32z1 sem sucesso. Todas as sugestões são muito apreciadas.

    
por Raj Raghuram 17.01.2017 / 06:55

2 respostas

3

Você não pode vincular uma biblioteca executável ou compartilhada a bibliotecas compartilhadas compiladas para uma arquitetura e / ou plataforma diferente. Você também

  1. precisa colocar as mãos em uma versão da biblioteca criada para a mesma plataforma e arquitetura, seja de quem forneceu a você ou compilando a partir da fonte ou

  2. construa o objeto de vinculação para a mesma plataforma e arquitetura que a biblioteca compartilhada em questão. É possível executar executáveis i386 em sistemas amd64 para que funcionem.

por David Foerster 17.01.2017 / 07:40
1

Eu suponho que você tenha que ativar o suporte a 32 bits.

Execute os seguintes comandos:

sudo dpkg --add-architecture i386
sudo apt-get update
sudo apt-get dist-upgrade

Em seguida, tente instalar as bibliotecas de 32 bits.

Mais informações

    
por Nisheet 17.01.2017 / 07:14