提问人:retro-bruno 提问时间:11/16/2023 更新时间:11/16/2023 访问量:51
Makefile:没有规则来创建目标 (sdcc)
Makefile: no rule to make target (sdcc)
问:
我正在尝试为我启动的 sdcc C 程序做我的第一个 Makefile。
目前,我收到此错误:
make: *** 没有规则来制作目标“out/main.rel”,需要“a.bin”。停。
这是我的 Makefile:
SRC = src/main.c src/include/vdu.c src/include/func.c
INC = include/common.h include/mos.h src/include/vdu.h src/include/func.h
MOSLIBSRC = lib/mos.s crt/crt0.s
CRT = out/crt0.rel
MOSLIB = out/mos.rel
OBJ = out/main.rel out/vdu.rel out/func.rel
EXEC = a.bin
CC = sdcc
LD = sdcc
AS = sdasz80
CLD = sdldz80
OBJCPY = sdobjcopy
ASFLAGS=-plosgff
CFLAGS=-mez80_z80 -Iinclude/ -Isrc/include/ --reserve-regs-iy --std-c11 --fno-omit-frame-pointer
CLINK=--no-std-crt0 -mez80_z80 --code-loc 100
all : $(EXEC)
$(EXEC) : $(OBJ) $(CRT) $(MOSLIB)
$(CC) -o $(EXEC) $(OBJ) $(CRT) $(MOSLIB) $(CFLAGS)
$(LD) -o $(OBJ) $(CRT) $(MOSLIB) $(CLINK)
$(CLD) -nf out/a.lk
$(OBJCPY) -I ihex -O binary out/a.rel miniGraf.bin
main.rel : src/main.c
$(CC) -o out/main.rel -c src/main.c $(CFLAGS)
vdu.rel : src/include/vdu.c
$(CC) -o out/vdu.rel -c src/include/vdu.c $(CFLAGS)
func.rel : src/include/func.c
$(CC) -o out/func.rel -c src/include/func.c $(CFLAGS)
$(CRT) : crt/crt0.s
$(AS) $(ASFLAGS) -o $(CRT) crt/crt0.s
$(MOSLIB) : $(MOSLIBSRC)
$(AS) $(ASFLAGS) -o $(MOSLIB) lib/mos.s
clean :
rm -rf out/*.* out/* main.bin
我尝试了很多改变,但没有成功。
答:
1赞
BlackJack
11/16/2023
#1
假设您在原始文件中使用了制表符而不是空格:
$OBJ
包含,作为 (= ) 的要求给出,但没有 的规则。“只有”一个。从字面上看,这就是错误消息试图告诉您的内容。out/main.rel
$EXEC
a.bin
out/main.rel
main.rel
更改目标以匹配要求,反之亦然。😎
评论
main.rel
out/main.rel