こんにちは。
いま、Cのコンパイラを作ろうとしているのですが、makefileでどこが間違っているのか分かりません。
makefileはここを参考に書いています。
make
の結果:
make: *** 'all' に必要なターゲット 'bin/9cc' を make するルールがありません. 中止.
makefile:
make:makefile
1CFLAGS := -Wall -std=c11 -g -static 2CC := $(CC) $(CFLAGS) 3 4PRGNAME := 9cc 5 6BINDIR := bin/ 7OBJDIR := build/ 8SRCDIR := src/ 9 10PROG := $(BINDIR)9cc 11SRCS := $(wildcard $(SRCDIR)/*.c) 12OBJS := $(addprefix $(OBJDIR), $(notdir $(SRCS:.c=.o))) 13 14all: $(PROG) 15 16clean: 17 $(RM) $(PROG) $(OBJS) 18 @[ -d $(OBJDIR) ] && rmdir $(OBJDIR) || echo -n 19 @[ -d $(BINDIR) ] && rmdir $(BINDIR) || echo -n 20 21$(BINDIR)%: $(OBJDIR)%.o 22 @mkdir -p $(BINDIR) 23 $(CC) $^ -o $@ 24 25$(OBJDIR)%.o: %.c 26 @mkdir -p $(OBJDIR) 27 $(CC) -c -o $< 28 29test: $(BINDIR)9cc 30 ./test.sh 31 32.PHONY: all clean test
tree .
の結果:
. ├── Makefile ├── README.md ├── src │ ├── 9cc.c │ ├── 9cc.h │ ├── codegen.c │ ├── error.c │ └── parse.c └── test.sh 1 directory, 8 files
エラーメッセージから鑑みるにall: $(PROG)
で$(PROG)
が$(BINDIR)%
にマッチしていないのかなあと思って調べてみたのがわかりません。
よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/06/04 11:14