Red de conocimiento informático - Material del sitio web - Cómo utilizar la programación mixta en lenguaje ensamblador y C en un sistema Linux de 64 bits Página 2

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.