Con gcc è possibile il cross-compiling. Potete compilare, sulla vostra macchina, per diverse architetture e/o sistemi.

Si veda il manuale per le varie opzioni di compilazione. Si può scaricare, in formato pdf, da qui:

http://gcc.gnu.org/onlinedocs/

Per esempio, se siamo su un sistema a 32 bit ma vogliamo compilare la nostra applicazione a 64 bit, possiamo usare il flag -m64:



Ovviamente, come mostra l'immagine, un programma a 64 bit non può essere eseguito su una macchina a 32 bit. Per eseguire il programma prodotto da gcc, hello64.exe, occorre una macchina a 64 bit. Il contrario, invece, si può fare; possiamo creare, su una macchina a 64 bit, un programma a 32 bit(col flag -m32) ed eseguirlo.

codice:
#include <stdio.h>

int main(/*int argc, char* argv[]*/)
{
   printf("\nHello World!\n");
   
   return 0;   
}