Não é possível executar o executável de 32 bits no sistema de 64 bits com suporte a vários arrays [fechado]

1

Eu compilei um executável de 32 bits para uma máquina Linux. Ele roda na maioria das distribuições Linux sem problemas. No entanto, no Ubuntu 16.04 LTS, recebo o erro No such file or directory ao tentar executá-lo. O executável está presente no diretório e possui todas as permissões relevantes definidas.

Existem algumas respostas que detalham uma solução para isso ( como aqui ). Então, eu fiz:
1. dpkg --print-architecture imprime amd64 .
2. dpkg --print-foreign-architecture imprime i386 .
Mesmo com o multi-arch habilitado por padrão, não consigo fazer o executável funcionar.

O que mais eu preciso instalar / fazer para que esse executável funcione?

P.S: O sistema não possui o ia32-libs instalado.

    
por Sriram 11.05.2016 / 07:37

1 resposta

3

"Nenhum arquivo ou diretório desse tipo" para um arquivo que existe é um sintoma de um loader ausente . No seu caso, com um binário de 32 bits em um sistema de 64 bits, você está perdendo o carregador dinâmico /lib/ld-linux.so.2 .

Ter multi-arch habilitado significa que você pode instalar pacotes de 32 bits em seu sistema de 64 bits. Mas, para realmente executar executáveis de 32 bits, você precisa instalar pacotes de 32 bits. No mínimo, instale libc6: i386 ; este é o pacote que contém o carregador dinâmico. Depois de fazer isso, você ainda pode obter erros referindo-se a bibliotecas ausentes, portanto, instale os pacotes de biblioteca de 32 bits necessários ( libFOO:i386 ).

    
por 12.05.2016 / 01:32