Makefile错误 - make:***没有规则来制作目标`boot.o','all'需要。停止

时间:2012-12-05 16:33:26

标签: 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 kernel $(SOURCES)

.s.o:
    yasm $(ASFLAGS) $

提前致谢

2 个答案:

答案 0 :(得分:0)

假设使用boot.o构建main.oyasm,您的makefile缺少.o的规则

.o:
    yasm $(ASFLAGS) $

答案 1 :(得分:0)

你正在使用old-fashioned suffix rules,并且缺少一些设置(加上最后一行的错误)。

切换到普通模式规则,尝试修复旧样式规则没有意义:

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