Compilare applicazioni a 32bit su 64bit
23 luglio 2010, sezione Linux
Cercando di compilare i sorgenti del progetto di reti di calcolatori su cui mi sto concentrando ultimamente mi sono imbattuto in un antipaticissimo errore. La compilazione andava a buon fine ma all’esecuzione ricevevo questo messaggio:
dimensione di int e/o long int != 4 -> TERMINO
La dimensione degli interi è una variabile dipendente dall’architettura per il quale un programma è compilato, in questo caso il prof ha pensato bene di evitare qualsiasi problema di compatibilità eliminando…la compatibilità!
E’ il caso di reinstallare tutto solo perché la nostra distribuzione di Linux è a 64bit? Certo che no! Linux a 64bit è perfettamente in grado di avviare codice a 32 l’unica cosa che dobbiamo fare è compilare il programma a 32 bit. Per fare ciò dobbiamo però installare qualche libreria in più…
sudo apt-get install libc6-dev-i386
Ora siamo pronti per compilare in 32bit. Per farlo aggiungiamo la flag -m32 al comando gcc o modifichiamo il Makefile, nel caso ne avessimo uno, aggiungendo la voce GCCFLAGS= -m32.
