64ビットのGCCコンパイル32ビットプログラム

1891 ワード

64ビットのGCCコンパイル32ビットプログラム
32のプログラムをコンパイルするには、-m 32を加えるだけです.
gcc -m32 llong.c

しかし、次のエラーが表示されます.
/usr/bin/ld:       /usr/lib/gcc/x86_64-linux-gnu/5/libgcc.a         -lgcc
/usr/bin/ld:     -lgcc
/usr/bin/ld:       /usr/lib/gcc/x86_64-linux-gnu/5/libgcc_s.so         -lgcc_s
/usr/bin/ld:     -lgcc_s
collect2: error: ld returned 1 exit status

アダプティブライブラリをインストールすればいいです
sudo apt-get install gcc-multilib g++-multilib module-assistant

ファイルで確認する
#gcc -m32 llong.c
#file a.out 
a.out: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux.so.2, for GNU/Linux 2.6.32, BuildID[sha1]=99473b248045d698bd44018a6ef7b6a067ce1bf1, not stripped

参照
http://blog.csdn.net/x356982611/article/details/79056089 https://linux.die.net/man/1/gcc