Cómo utilizar la programación mixta en lenguaje ensamblador y C en un sistema Linux de 64 bits Página 2
El método de uso es el siguiente:
lt; 1gt; Deje que gcc genere código de 32 bits y vincúlelo en modo de 32 bits durante la vinculación.
En En este caso, sólo necesita modificar las instrucciones de compilación y enlace, de la siguiente manera:
1 nasm -f elf foo.s -o foo.o
2 gcc -m32 - c bar.c -o bar.o
3 ld -m elf_i386 -s -o foobar foo.o bar.o
lt si es una versión superior de gcc (posiblemente causado por la actualización del kernel), el siguiente error puede aparecer cuando simplemente se usa -m32 (nunca lo he encontrado al usar procesos de otras personas):
gt en el archivo incluido desde /usr; /include/ stdio.h: 28:0,
gt; de test.c: 1:
gt; /usr/include/features.h: 323:26: fatal error: bits /predefs.h: No existe tal archivo o directorio
gt; la compilación finalizó.
Este debería ser el paquete que falta para compilar el programa ejecutable de 32 bits, use lo siguiente comando para instalar:
p>
sudo apt-get install libc6-dev-i386
No debería haber ningún problema en este punto.