assembly - smart - Use ld en la plataforma de 64 bits para generar ejecutable de 32 bits
solidity español (1)
Escribí una asamblea que se ensambla con:
$as --32 -o hello.o hello.s
Luego traté de generar un ejecutable con:
$ld -o hello hello.o
Me da un error:
ld: i386 architecture of input file `ConditionalBranching.o'' is incompatible with i386:x86-64 output
Intenté usar flag -m32 o --32, pero no los llevo. No puedo encontrar una solución leyendo la página man de ld. ¿Cómo puedo generar un binario de 32 bits de mi objeto compartido de 32 bits?
Su vinculador está intentando crear un binario de 64 bits, pero su código de ensamblado fue ensamblado para una arquitectura de 32 bits. Esto crea una falta de coincidencia.
Solucione esto pasando el -m elf_i386
a su vinculador, indicándole explícitamente que cree un binario de 32 bits.