GNU/Linux >> Tutoriels Linux >  >> Linux

Comment compiler un binaire 32 bits sur une machine Linux 64 bits avec 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)

En bref :utilisez le -m32 drapeau pour compiler un binaire 32 bits.

Assurez-vous également que vous avez installé les versions 32 bits de toutes les bibliothèques requises (dans mon cas, tout ce dont j'avais besoin sur Fedora était glibc-devel.i386)


Linux
  1. Comment j'utilise Vagrant avec libvirt

  2. Comment chiffrer des fichiers avec gocryptfs sous Linux

  3. Comment arrêter ou redémarrer Linux

  4. Comment déterminer si un fichier binaire Linux est 32 bits ou 64 bits ?

  5. Comment vérifier le mot de passe avec Linux?

Comment savoir si vous avez un ordinateur 32 bits ou 64 bits sous Linux et Windows

Comment configurer un pare-feu avec GUFW sous Linux

Comment savoir si la version 32 bits ou 64 bits de Linux

Comment vérifier que le système Linux est 32 bits ou 64 bits ?

Comment compiler l'application .NET Core pour Linux sur une machine Windows

Comment exécuter une nouvelle version d'AIX dans une machine virtuelle avec un hôte Linux ?