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.

관련 정보