我的项目中有一个库,我想强制gmake只为库文件尚未构建时才为该库构建目标文件 .
目前,在依赖项之后,始终构建对象 .
那么,如果库已经存在,是否可以描述阻止编译的规则?
添加的例子:
all: prj.exe
@echo build all.
prj.exe: main.o libbar.a
gcc main.o -lbar -L. -o prj.exe
libbar.a: foo.o
ar rcs libbar.a foo.o
%.o: %.c
gcc -c $< -o $@
1 回答
最简单的方法是使用递归make . 任何没有先决条件的目标都被声明为最新的,当且仅当它存在时 . 因此,声明没有先决条件的库目标 . 然后,为了构建目标文件,你应该使用递归 .
所以,像这样: