【发布时间】:2018-10-14 02:13:41
【问题描述】:
这是我的 makefile 和 mu 字典包括标题、日志、obj、解析器、lisod.c,我不认为我忘记了一些文件,一些文件需要输出但它没有出现。 我的错误看起来像 make: *** No rule to make target 'obj/logging.o', 'liso_server' 需要。停下来。
CC=gcc
CFLAGS= -g -I.
_DEPS = parse.h y.tab.h logging.h
_OBJ =logging.o parse.o y.tab.o lex.yy.o
FLAGS = -g -Wall
PARSE_DIR = parser
LOG_DIR = log
OBJ_DIR = obj
INCLUDE_DIR = header
DEPS = $(patsubst %, $(INCLUDE_DIR)/%, $(_DEPS))
OBJ = $(patsubst %,$(OBJ_DIR)/%, $(_OBJ))
default: all
all: liso_server
$(PARSE_DIR)/lex.yy.c: $(PARSE_DIR)/lexer.l
flex -o $@ $^
$(PARSE_DIR)/y.tab.c: $(PARSE_DIR)/parser.y
yacc -d $^
mv y.tab.h $(INCLUDE_DIR)/
$(OBJ_DIR)/%.o: $(PARSER_DIR)/%.c $(LOG_DIR)/%.c $(DEPS)
$(CC) $(FLAGS) -c -o $@ $< $(CFLAGS)
liso_server: $(OBJ)
$(CC) -o $@ $^ $(CFLAGS)
.PHONY: clean
clean:
rm -f $(OBJ_DIR)/*.o
rm $(PARSE_DIR)/lex.yy.* $(PARSE_DIR)/y.tab.* $(INCLUDE_DIR)/y.tab.*
rm liso_server
【问题讨论】:
标签: makefile