【发布时间】:2014-02-15 03:01:50
【问题描述】:
我正在尝试使用几个基于自己的 makefile 构建的静态库来启动项目,如下所示:
LIBDIR= ../../lib/
SRC= mgui.c
-include $(SRC:%.c=%.d)
INC=-I../../inc \
-Iinc \
-I../../shared
EXEC= libmgui.lib
CFLAGS= -Wall -static -D$(DEBUG) -MMD -MP
ARFLAGS= rcs
AR = ar
all: $(SRC:%.c=%.o)
$(AR) $(ARFLAGS) $(LIBDIR)$(EXEC) $<
%.o: %.c
$(CC) -c $< -o $@ $(INC) $(CFLAGS)
该 makefile 是从更高级别的 makefile 运行的。
我在 ../../shared/ 文件夹中有 globals.h 文件,该文件包含在 mgui.c 中,如果我对该文件进行修改,此 makefile 将不起作用。它只是制作新的 .o 文件,但从未制作过 ar 和新的 .lib,为什么?将win8与mingw一起使用。
生成的依赖文件如下所示:
mgui.o: mgui.c inc/mgui.h ../../shared/globals.h
inc/mgui.h:
../../shared/globals.h:
【问题讨论】: