我有一个 lib(比如mylib
)和两个可执行文件,其中一个(比如exe1
)依赖于 lib。在文件系统中,我有:
src
Makefile
...
lib
mylib
Makefile
...
exe1
Makefile
...
exe2
Makefile
...
并通过make
在src
dir 中启动所有内容。
Makefile
在源代码中:
EXE=exe1 exe2
LIB=mylib
all: $(LIB) $(EXE)
.PHONY: $(LIB) $(EXE)
$(LIB):
$(MAKE) -C lib/$@
$(EXE): $(LIB)
$(MAKE) -C $@
例如,Makefile
对于exe1
是:
...
all: exe1 copy
exe1: exe1.o
$(CC) $(CFLAGS) $(OBJ) $(LDFLAGS) -o $@
%.o: %.c
$(CC) $(CFLAGS) -c $< -o $@
...
我的问题是,如果我更改mylib
dir 中的文件,则库会正确重建,但exe1
显然没有......有没有办法让make
该exe1
目标依赖于在先前调用中指定的目标(mylib),make
而无需指定依赖于mylib
' s 文件在exe1
Makefile
?
谢谢你们。