export CFLAGS=-m32
$ gcc test.c -o testc
$ file testc
testc: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.9, not stripped
$ ldd testc
linux-vdso.so.1 => (0x00007fff227ff000)
libc.so.6 => /lib64/libc.so.6 (0x000000391f000000)
/lib64/ld-linux-x86-64.so.2 (0x000000391ec00000)
$ gcc -m32 test.c -o testc
$ file testc
testc: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.9, not stripped
$ ldd testc
linux-gate.so.1 => (0x009aa000)
libc.so.6 => /lib/libc.so.6 (0x00780000)
/lib/ld-linux.so.2 (0x0075b000)
Kurz gesagt:Verwenden Sie den -m32 Flag zum Kompilieren einer 32-Bit-Binärdatei.
Stellen Sie außerdem sicher, dass Sie die 32-Bit-Versionen aller erforderlichen Bibliotheken installiert haben (in meinem Fall brauchte ich auf Fedora nur glibc-devel.i386)