GNU/Linux >> Linux の 問題 >  >> Linux

gcc/cmake を使用して 64 ビット Linux マシンで 32 ビット バイナリをコンパイルする方法

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)

要するに:-m32 を使用します 32 ビット バイナリをコンパイルするためのフラグ。

また、必要なすべてのライブラリの 32 ビット バージョンがインストールされていることを確認してください (私の場合、Fedora で必要だったのは glibc-devel.i386 だけでした)


Linux
  1. libvirtでVagrantを使用する方法

  2. Linuxでgocryptfsを使用してファイルを暗号化する方法

  3. Linuxをシャットダウンまたは再起動する方法

  1. Linux で Windows Visual C++ コードをコンパイルする方法

  2. Linux バイナリ ファイルが 32 ビットか 64 ビットかを判断する方法は?

  3. Linuxでパスワードを確認するには?

  1. 32ビットライフサポート:GCCとのクロスコンパイル

  2. LinuxでWindowsパスワードをリセットする方法

  3. スクリーンショットを使用してMXLinux21をステップバイステップでインストールする方法