03 marzo 2009

Compilar código de 32 bits en 64 bits con gcc

Si por alguna razón tenéis que compilar un código como si estuvierais en una máquina de 32 bits, en vez de una de 64, podéis hacerlo siguiendo estos pasos:

1) Instalamos el paquete gcc-multilib (para lenguaje C):

sudo aptitude install gcc-multilib

2) Compilamos usando la opción del compilador -m32:

gcc foo.c -o foo.x -m32

Este tutorial funciona en Ubuntu, aunque supongo que funciona en cualquier distribución que cuente con el paquete gcc-multilib (o equivalente).

Si lo que queréis compilar es C++, en vez de C, el paquete a instalar es g++-multilib.

Esto es útil si os pasa como a mí, que necesitaba compilar un programa pero no contaba con el código objeto compilado para 64 bits, sólo para 32. Con esto, podréis compilarlo todo como 32 bits sin ningún problema.

Un saludo,
Morpheus