Makefileに関する初心者の質問があります。私は非常にシンプルなメイク含むがありますMakefileでオブジェクトの規則が見つかりません
SHELL = /bin/sh
CC = gcc
CFLAGS = -lm -std=c99 -g -o0
EXEC = test
BUILDDIR = build
OBJDIR = obj
SOURCES = $(shell cat sources.list)
DEPS = $(shell cat headers.list)
OBJ = $(SOURCES:.c=.o)
OBJECTS = $(patsubst %,$(OBJDIR)/%,$(OBJ))
all: $(OBJECTS)
$(CC) $(CFLAGS) $(OBJECTS) -o $(BUILDDIR)/$(EXEC)
$(OBJDIR)/%.o: %.c $(DEPS)
$(CC) -c $< -o [email protected]
clean:
rm -f $(BUILDDIR)/$(EXEC) $(OBJDIR)/*.o
私の問題は、私はコンパイルするために、このMakefileを使用しようとする場合、それはエラーメッセージを返します。
there is no rule for the target obj/Name.o
私が間違っているのは何を?最初のいくつかのコメントや今後の研究の後
それは私が
SHELL = /bin/sh
CC = gcc
CFLAGS = -lm -std=c99 -g -o0
EXEC = test
BUILDDIR = build
OBJDIR = obj
SOURCES = $(shell cat sources.list)
DEPS = $(shell cat headers.list)
OBJ = $(SOURCES:.c=.o)
OBJECTS = $(patsubst %,$(OBJDIR)/%,$(OBJ))
all: $(BUILDDIR)/$(EXEC)
$(BUILDDIR)/$(EXEC): $(OBJ)
$(CC) $(CFLAGS) $(OBJ) -o $(BUILDDIR)/$(EXEC)
%.o: %.c $(DEPS)
$(CC) -c $< -o [email protected]
clean:
rm -f $(BUILDDIR)/$(EXEC) $(OBJDIR)/*.o
は 'Name.c'は、トップレベルのディレクトリに、存在していますか? –
はい、それ以外の場合、メイクファイルに.oをビルドする必要はありません – Thorsten
'sources.list'ファイルにname.cはありますか? – jdarthenay