GNU Make 3.81 の使用
私が得ているエラーは次のとおりです。
make: 「unittest/build/xlineunittestrunner」で必要なターゲット「unittest/build/inMessages.o」を作成するルールがありません。止まる。
私はmakefileに次のように書かれたターゲットを持っています:
$(BUILDDIR)/%.o: %.c
$(CC) $(INCLUDES) $(DEFINES) -c $< -o $@
%
(in $(BUILDDIR)/%.o: %.c
) をに置き換えるとinMessages
、機能します。%
が一致しない理由がわかりませんinMessages
。
編集:
問題は、.o ファイルに一致する他のルールがあることではないと思います。makefile のルールの完全なリストは次のとおりです。
all: printinfo checkdirs $(BUILDDIR)/xlineunittestrunner
printinfo:
@echo "SRCS = $(SRCS)"
@echo "OBJ = $(OBJ)"
@echo "SOURCEDIRS = $(SOURCEDIRS)"
@echo "OBJECTS = $(OBJECTS)"
@echo "OBJECTSTOBUILD = $(OBJECTSTOBUILD)"
@echo "BUILDDIR = $(BUILDDIR)"
$(BUILDDIR)/xlineunittestrunner: $(OBJECTSTOBUILD)
$(CC) -o $@ -c $^
$(BUILDDIR)/%.o: %.c
$(CC) $(INCLUDES) $(DEFINES) -c $< -o $@
checkdirs: $(BUILDDIR)
$(BUILDDIR):
@mkdir -p $@