make: *** Нет правила для создания цели 'mykernel.bin'. Стоп - PullRequest
0 голосов
/ 13 октября 2019

Я пытаюсь создать bin-файл с именем mykernel.bin, выполнив:

make mykernel.bin

, но постоянно получаю следующую ошибку:

make: *** No rule to make target 'mykernel.bin'. Stop.

Вот мой make-файл:

GPPPARAMS = -m32 -fno-use-cxa-atexit -nostdlib -fno-builtin -fno-rtti   -fno-exceptions -fno-leading-underscore
ASPARAMS = --32
LDPARAMS = -melf_i386

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

Вот мой файл linker.ld:

ENTRY(loader)
OUTPUT_FORMAT(elf32-i386)
OUTPUT_ARCH(i386:i386)

SECTIONS
{
  . = 0x0100000;

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

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

    *(.data)
  }

   .bss  :
  {
    *(.bss)
  }

}

Кто-нибудь замечает что-то не так с кодом? Пожалуйста помоги. Спасибо всем заранее.

...