GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So kompilieren Sie eine 32-Bit-Binärdatei auf einem 64-Bit-Linux-Rechner mit gcc/cmake

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)


Linux
  1. Wie ich Vagrant mit libvirt verwende

  2. So verschlüsseln Sie Dateien mit gocryptfs unter Linux

  3. 32-Bit-Lebenserhaltung:Cross-Compiling mit GCC

  4. Wie kann man feststellen, ob eine Linux-Binärdatei 32-Bit oder 64-Bit ist?

  5. Wie überprüfe ich das Passwort mit Linux?

So erkennen Sie, ob Sie einen 32-Bit- oder 64-Bit-Computer unter Linux und Windows haben

So richten Sie eine Firewall mit GUFW unter Linux ein

So erkennen Sie, ob es sich um eine 32-Bit- oder 64-Bit-Version von Linux handelt

Wie kann ich überprüfen, ob das Linux-System 32-Bit oder 64-Bit ist?

So kompilieren Sie die .NET Core-App für Linux auf einem Windows-Computer

Wie führe ich eine neue Version von AIX in einer virtuellen Maschine mit einem Linux-Host aus?