i386input文件的体系结构与i386:x86-64不兼容

我正在尝试使用Ubuntu创build一个简单的内核。 在我input的terminal中

ld -Ttext 0x1000 -o kernel.bin loader.o main.o Video.o 

但是我得到了以下错误信息:

  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 

Solutions Collecting From Web of "i386input文件的体系结构与i386:x86-64不兼容"

使用64位而不是32位加载器,并使用以下命令进行编译:

 nasm -f elf64 loader.asm -o loader.o 

这应该解决你的错误

如果要将文件编译为32位组合,可以使用:

ld -m elf_i386 -s -o file.o文件

在x86_64上编译/链接32位应用程序时,将仿真设置为elf_i386提供正确的elf格式。 因此,例如,如果使用nasm -f elf file.asm -o file.o编译汇编程序,则链接命令是ld -m elf_i386 -o exename file.o礼貌:David