make: *** 没有规则可以创建目标“mykernel.bin”。停止

make: *** 没有规则可以创建目标“mykernel.bin”。停止

我正在操作系统上工作,但我的 makefile.win 遇到此错误。看起来 linker.ld 输出文件与我正在制作的文件(mykernel.bin)的命名约定不匹配。不确定这是否是错误的原因。这是为 64 位系统构建的。

生成文件.win

ASPARAMS =
LDPARAMS = -melf_x86_64

objects = loader.o kernel.o

%.o: %.cpp
    g++ $(GPPPARAMS) -o $@ -c $<

%.o: %.s
    as $(ASPARAMS) -o $@ $<

mykernel.bin: linker.ld $(objects)
    ld $(LDPARAMS) -T $< -o $@ $(objects)

install: mykernel.bin
    sudo cp $< /boot/mykernel.bin

链接器.ld

OUTPUT_FORMAT(elf64-x86-64)
OUTPUT_ARCH(i386:x86-64)

SECTIONS
{
    . = 0x100000;  /* Adjust the starting address for 64-bit */

    .text :
    {
        *(.multiboot)
        *(.text*)
        *(.rodata)
    }

    .data :
    {
        start_ctors = .;
        KEEP(*( .init_array ))
        KEEP(*(SORT_BY_INIT_PRIORITY( .init_array.* )))
        end_ctors = .;

        *(.data)
    }

    .bss :
    {
        *(.bss)
    }

    /DISCARD/ :
    {
        *(.fini_array*)
        *(.comment)
    }
}

错误

~/MyOS$ make mykernel.bin
make: *** No rule to make target 'mykernel.bin'.  Stop.

相关内容