•
Como compilar una aplicación de 32 bits desde el gcc de 64
Mediante un simple flag del gcc podemos compilar en 32 bits o 64 bits. Vamos a ver un ejemplo con una aplicación sencilla.
Mediante la siguiente aplicación vamos a ver como compilarla en 32 y 64 bits:
#include <stdio.h>
int main(void)
{
printf("double: %d - pointer: %d\n",sizeof(double),sizeof(void*));
return 0;
}
En el caso de la arquitectura de 32 bits veremos como los punteros son de 4 bytes (32 bits) y la de 64 bits de 8 bytes.
En el caso de un sistema de 64 bits por defecto nos compila a 64 bits pero también podemos indicarlo opcionalmente mediante -m64:
# gcc ejemplo.c # ./a.out double: 8 - pointer: 8 # file a.out a.out: ELF 64-bit LSB executable, AMD x86-64, version 1 (SYSV), for GNU/Linux 2.6.9, dynamically linked (uses shared libs), for GNU/Linux 2.6.9, not stripped
Si queremos compilar a 32 bits simplemente indicamos -m32:
# gcc -m32 ejemplo.c # ./a.out double: 8 - pointer: 4 # file a.out a.out: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.6.9, dynamically linked (uses shared libs), for GNU/Linux 2.6.9, not stripped
Relacionados
Imprimir
Deja un comentario: