我正在修改 aMakefile
以添加一个将用于更新和编译依赖项的命令。
我已经让make clean
命令工作了。现在我试图让它在运行任何其他make
命令之前运行。
我正在尝试添加all: clean
,但似乎不起作用:
.PHONY: all
all: clean
.PHONY: clean
clean:
rm -rf build
update-dep:
mkdir -p build/package_name \
&& # do stuff here
当任何其他函数运行时,如何才能干净地运行?
答案1
好吧,我想你知道依赖关系是如何工作的,你只需将它们放在冒号后面即可。因此,一个常见的习惯用法是具有all
这样的依赖关系:
all: main_program
它唯一的特别之处在于第一的文件中的目标是默认目标,因此all
Makefile 开头的显式允许您设置默认目标。
如果您想将其添加main_program
为依赖项,只需将其与其他项一起列出即可:main_program.o
clean
all: clean main_program
update_dep: clean
do stuff...
all: clean
没有其他依赖项的列表与make all
相同make clean
,因此您可能想在其中添加一些其他依赖项。
在每次运行之前清理所有内容仍然不是一个好主意,因为 Make 的整个想法是它找出需要更新的文件,并且只执行更新所需的工作。clean
如果您希望它每次都运行,您需要明确地坚持作为所有其他目标的依赖项。