Autor Tema: Compilar para 32 bits en Debian 64, Ubuntu 64 bits y derivadas  (Leído 558 veces)

Jack Bauer

  • Administrator
  • Analista
  • *****
  • Mensajes: 237
Compilar para 32 bits en Debian 64, Ubuntu 64 bits y derivadas
« en: Septiembre 27, 2014, 03:44:47 pm »
Desde hace un tiempo la gente de Debian ha decidido fastidiar al personal quitando el paquete ia32-libs que proporcionaba compatibilidad con código de 32 bits en sistemas de 64.

Para poder seguir compilando los programas que requieren ser enlazados con bibliotecas de 32 bits y por tanto no pueden compilarse en 64 bits, muchos programadores sugieren una pequeña ñapa, agregar un repositorio de una versión anterior e instalar el paquete ia32-libs de la versión desfasada.

Este método, aunque funciona en la mayoría de los casos, puede llegar a dejar inconsistente el sistema de paquetes y por consiguiente todo el sistema, obligando a tener que reinstalar linux. Este riesgo aumenta conforme pasa el tiempo y las distribuciones que contienen el paquete ia32-libs se van quedando más obsoletas.

La forma correcta de proceder es la siguiente:


sudo dpkg --add-architecture i386 && sudo apt-get update
sudo apt-get install ia32-libs
sudo apt-get install libc6:i386 libncurses5:i386 libstdc++6:i386
sudo apt-get install lib32z1 lib32ncurses5 lib32bz2-1.0
sudo apt-get install libfontconfig1:i386 libx11-6:i386 libxrender1:i386 libxext6:i386 libgl1-mesa-glx:i386 libglu1-mesa:i386 libglib2.0-0:i386 libsm6:i386
sudo apt-get install gcc-multilib


para probarlo, podéis compilar el programa hello.c adjunto a este post mediante el comando:

gcc -m32 hello.c

/* Hello World program */

#include<stdlib.h>
#include<stdio.h>

int main()
{
    printf("\n\nHello World\n\n");
    return 0;
}


Si no da errores al compilar, todo está correcto.