我正在尝试制作 Makefile 但我遇到了一些问题
首先我有
2 个源文件:~/main.c ~/lib/library.c 1 个头文件:~/include/library.h
main.c 和 library.c 共享同一个头文件 library.h
# Compiler options
CC = gcc
INC = -I../include
CFLAGS = -Wall -g -c $(INC)
LIB = -L../lib
LFLAGS = -Wall -g $(LIB)
# Dependencies
LIBS = -libmylib
OBJS = main.o
SRCS = $(OBJS:.o=.c)
EXEC = a.out
# Other rules
RM = rm -rf
TAGS = tags
BAK = Makefile.bak
all: $(EXEC)
@echo ------------------------ Compile Complete ----------------------------
.PHONY: clean depend
$(EXEC): $(OBJS)
$(CC) $(LFLAGS) -o $@ $^ $(LIBS)
.c.o:
$(CC) $(INC) -M $^
$(CC) $(CFLAGS) -o $@ $<
clean:
$(RM) *.o *~ $(EXEC) $(TAGS) $(BAK)
depend: $(SRCS)
makedepend $(INC) $^
它一直说我不能排除library.o的规则
另外我还有一个问题
我承认当 Makefile 在调用 'make' 后开始执行时,
然后转到 .co 或 %c: %o(在 GNU 增强版中)行并制作
.o 文件。但是为什么它不自动调用 clean 和依赖呢?
我从以前版本的 Makefile 中编辑了一些东西
这一次,(非常类似于前面的问题)即使我
阐明了库路径(-I../lib),
Makefile 找不到存档文件(我在 ../lib 目录中创建为 libmylib.a)
现在它让我发疯