我正在研究类似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) $
提前致谢
答案 0 :(得分:0)
假设使用boot.o
构建main.o
和yasm
,您的makefile缺少.o
的规则
.o:
yasm $(ASFLAGS) $
答案 1 :(得分:0)
你正在使用old-fashioned suffix rules,并且缺少一些设置(加上最后一行的错误)。
切换到普通模式规则,尝试修复旧样式规则没有意义:
%.o: %.s
yasm $(ASFLAGS) $<