GNU/Linux >> Linux Esercitazione >  >> Linux

Come compilare un binario a 32 bit su una macchina Linux a 64 bit con 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)

In breve:usa il -m32 flag per compilare un file binario a 32 bit.

Inoltre, assicurati di avere le versioni a 32 bit di tutte le librerie richieste installate (nel mio caso tutto ciò di cui avevo bisogno su Fedora era glibc-devel.i386)


Linux
  1. Come uso Vagrant con libvirt

  2. Come crittografare i file con gocryptfs su Linux

  3. Supporto vitale a 32 bit:compilazione incrociata con GCC

  4. Come spegnere o riavviare Linux

  5. Come controllare la password con Linux?

Come sapere se hai un computer a 32 bit o 64 bit in Linux e Windows

Come configurare un firewall con GUFW su Linux

Come sapere se la versione a 32 bit o 64 bit di Linux

Come verificare il sistema Linux è a 32 o 64 bit?

Come compilare l'app .NET Core per Linux in un computer Windows

Come eseguire una nuova versione di AIX in una macchina virtuale con un host Linux?