linux - sistema - La arquitectura del archivo de entrada i386 es incompatible con i386: x86-64
inrelease no admite la arquitectura i386 (3)
Al compilar / enlazar aplicaciones de 32 bits en x86_64, configurar la emulación a elf_i386
proporciona el formato elf correcto. Entonces, por ejemplo, si compila una aplicación de ensamblador con nasm -f elf file.asm -o file.o
, el comando de enlace es ld -m elf_i386 -o exename file.o
Cortesía: David
Estoy tratando de crear un núcleo simple usando Ubuntu. En la terminal escribí
ld -Ttext 0x1000 -o kernel.bin loader.o main.o Video.o
Pero recibí el siguiente mensaje de error a cambio:
ld: i386 architecture of input file `loader.o'' is incompatible with i386:x86-64 output
ld: warning: cannot find entry symbol _start; defaulting to 0000000000001000
Si desea compilar el archivo con una composición de 32 bits, puede utilizar:
ld -m elf_i386 -s -o file.o file
Use 64 bits en lugar de 32 para su cargador y compílelo con el siguiente comando:
nasm -f elf64 loader.asm -o loader.o
Esto debería resolver su error.