Makefile错误-make:**没有规则使目标'boot.o'为'all'所需。停止

Makefile错误-make:**没有规则使目标'boot.o'为'all'所需。停止,makefile,kernel,yasm,Makefile,Kernel,Yasm,我正在学习一个类似于unix的内核开发教程,我确信我遇到了一个完全没有问题的问题:有人能告诉我这有什么问题吗 SOURCES=boot.o main.o CFLAGS=-nostdlib -nostdinc -fno-builtin -fno-stack-protector LDFLAGS=-Tlink.ld ASFLAGS=-felf all: $(SOURCES) link clean: -rm *.o kernel link: ld $(LDFLAGS) -o k

我正在学习一个类似于unix的内核开发教程,我确信我遇到了一个完全没有问题的问题:有人能告诉我这有什么问题吗

SOURCES=boot.o main.o

CFLAGS=-nostdlib -nostdinc -fno-builtin -fno-stack-protector
LDFLAGS=-Tlink.ld
ASFLAGS=-felf

all: $(SOURCES) link 

clean:
    -rm *.o kernel

link:
    ld $(LDFLAGS) -o kernel $(SOURCES)

.s.o:
    yasm $(ASFLAGS) $
提前感谢

假设boot.o和main.o是使用yasm构建的,那么您的makefile没有.o的规则

您正在使用,并且缺少一些设置,加上最后一行中的错误

改为切换到普通模式规则,没有必要尝试修复旧式规则:

%.o: %.s
    yasm $(ASFLAGS) $<

您检查过boot.o文件是否存在吗?@SidR,没有。它找不到要编译的规则it@aleguna符合事实的但是,如果已经有boot.o文件,则不需要编译它。
%.o: %.s
    yasm $(ASFLAGS) $<