2016-08-21 3 views
0

Я только начал узнавать о GNU make вчера. Как гласит название, кажется, что знак% в моем файле Makefile не распознается. Или, может быть, я использую это неправильно. Может кто-нибудь просветить меня? ВыходПравила входа в правило makefile не распознаются

CXX = clang++ 
EXE = Invaders 

SDL = -F./lib 
LDFLAGS = $(SDL) 

SRCDIR = src 
OBJDIR = obj 

SRC = $(SRCDIR)/main.cpp $(wildcard $(SRCDIR)/util/*.cpp) $(wildcard $(SRCDIR)/misc/*.cpp) 
OBJ = $(patsubst $(SRCDIR)/%.cpp,$(OBJDIR)/%.o,$(SRC)) 

all: $(EXE) 

$(EXE): $(OBJ) 
    $(CXX) $(LDFLAGS) -o bin/[email protected] $^ 

$(OBJDIR)/%.o: $(SRCDIR)/%.cpp $(SRCDIR)/%.h 
    $(CXX) -c -o [email protected] $< 

консоли:

make: *** No rule to make target `obj/main.o', needed by `Invaders'. Stop. 

Tree view of my entire project with directories /obj and /src expanded

Спасибо!

ответ

1

Это правило:

$(OBJDIR)/%.o: $(SRCDIR)/%.cpp $(SRCDIR)/%.h 
    $(CXX) -c -o [email protected] $< 

не подходит obj/main.o, потому что нет src/main.h.

(Кроме того, пожалуйста, поместите необходимую информацию в тело вопроса, не полагайтесь на ссылку на изображение.)

Смежные вопросы