make:***没有将目标设置为“ mykernel.bin”的规则。停止

时间:2019-10-13 15:40:45

标签: makefile linux-mint

我正在尝试通过运行以下命令来生成名为mykernel.bin的bin文件:

make mykernel.bin

但我不断收到以下错误:

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

这是我的makefile:

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)
  }

}

有人注意到代码有什么问题吗?请帮忙。提前谢谢大家。

0 个答案:

没有答案