Problema ao compilar um binário de 32 bits em uma máquina de 64 bits

8

Estou tentando compilar um programa c como um binário de 32 bits em vez de 64 bits. Comecei adicionando -m32 e obtive alguns erros. Pesquisando um pouco, encontrei uma nota para instalar o ia32-libs. A execução de apt-get install ia32-libs resultou em uma notificação que já estava instalada e na versão mais recente.

Existe uma cadeia de bibliotecas, incluindo a próxima, até falhar:

/usr/include/features.h:323:26: fatal error: bits/predefs.h: No such file or directory

Parece que a inclusão de versões de 32 bits do outro inclui /usr/include/c++/4.6/x86_64-linux-gnu/32/bits/ ...

O que estou perdendo?

    
por Matt 01.01.2012 / 09:34

2 respostas

25

A resposta de Lekensteyn entrou em conflito com muitos pacotes existentes para mim (em oníricos de 64 bits).

Eu fiz isso, o que puxou o pacote libc6-dev-i386 :

apt-get install gcc-multilib
    
por A B 21.02.2012 / 06:27
7

ia32-libs apenas contém algumas bibliotecas de compatibilidade que ainda não foram migradas para o Multi Arch. Para compilar bibliotecas de 32 bits, você precisa instalar as bibliotecas de 32 bits e os arquivos de desenvolvimento de C:

sudo apt-get install libc6-dev:i386

Veja também: O recurso multiarch em 11.10 significa a morte da força - as instalações de arquitetura?

    
por Lekensteyn 01.01.2012 / 12:09

Tags