systemadmin.es > Utilidades > Como compilar una aplicación de 32 bits desde el gcc de 64

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

Deja un comentario:

XHTML - Tags permitidos:<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>