Pergunta

Como o título dizia, o programa C cumpriu e criou um binário em máquina de 64 bits. Este trabalho binário abaixo de 32 bits?

Foi útil?

Solução

Os binários de 64 bits não podem ser executados em um sistema operacional de 32 bits. Se file relatórios ELF 64-bit, você tem um binário de 64 bits.

Para construir binários de 32 bits em um Linux de 64 bits, você precisa passar -m32 para GCC. Você também precisa ter bibliotecas de 32 bits instaladas (sudo apt-get install libc6-dev-i386).

Outras dicas

A máquina de compilação não importa. O que importa é: o código é gerado por 32 bits (resposta: sim) ou 64 bits (resposta: não).

Funcionará em uma máquina de 32 bits? Um com uma CPU que não suporta o modo de 64 bits? Não.

Ele funcionará em uma VM de 64 bits em um sistema operacional nativo de 32 bits? Sim, na minha experiência.

Um resultado surpreendente é que as VMs de 64 bits podem ser executadas sob um sistema operacional host de 32 bits, desde que a CPU seja capaz e você não queira alocar muita RAM (> 2G ou mais ou menos) ao convidado.

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