Pregunta

Como dijo el título, he cumplido el programa C y creó un binario en una máquina de 64 bits. ¿Este trabajo binario bajo 32 bits?

¿Fue útil?

Solución

Los binarios de 64 bits no pueden funcionar en un sistema operativo de 32 bits. Si file informes ELF 64-bit, tienes un binario de 64 bits.

Para construir binarios de 32 bits en un Linux de 64 bits, necesita pasar -m32 a GCC. También debe tener bibliotecas de 32 bits instaladas (sudo apt-get install libc6-dev-i386).

Otros consejos

La máquina de compilación no importa. Lo que importa es: ¿El código se genera 32 bits (respuesta: sí) o 64 bits (respuesta: no).

¿Funcionará en una máquina de 32 bits? ¿Uno con una CPU que no admite el modo de 64 bits? No.

¿Funcionará en una VM de 64 bits en un sistema operativo nativo de 32 bits? Sí, en mi experiencia.

Un resultado sorprendente es que las máquinas virtuales de 64 bits se pueden ejecutar bajo un sistema operativo host de 32 bits, siempre que la CPU sea capaz y no desea asignar demasiada RAM (> 2G o por otros) al invitado.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top