$ gcc test.c -o testc
$ tập tin testc
testc: ELB 64 bit thực thi LSB, x86-64, phiên bản 1 (SYSV), được liên kết động (sử dụng libs được chia sẻ), cho GNU / Linux 2.6.9, không bị tước
$ 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
$ tập tin testc
testc: ELB 32-bit LSB thực thi, Intel 80386, phiên bản 1 (SYSV), được liên kết động (sử dụng libs được chia sẻ), cho GNU / Linux 2.6.9, không bị tước
$ ldd testc
linux-gate.so.1 => (0x009aa000)
libc.so.6 => /lib/libc.so.6 (0x00780000)
/lib/ld-linux.so.2 (0x0075b000)
Tóm lại: sử dụng -m32
cờ để biên dịch nhị phân 32 bit.
Ngoài ra, hãy đảm bảo rằng bạn đã cài đặt các phiên bản 32 bit của tất cả các thư viện cần thiết (trong trường hợp của tôi, tất cả những gì tôi cần trên Fedora là glibc-devel.i386)