make: *** 'mykernel.bin' ターゲットを生成するルールはありません。止める

make: *** 'mykernel.bin' ターゲットを生成するルールはありません。止める

私はOSで作業していますが、makefile.winでこのエラーが発生します。 linker.ld出力ファイルが、私が作成しているファイル(mykernel.bin)の命名規則と一致しないようです。これがエラーの原因であるかどうかはわかりません。これは64ビットシステム用に構築されています。

file.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.

ベストアンサー1

おすすめ記事