如果makefile更改,如何强制make运行clean目标

dev*_*use 9 makefile

如果makefile更改,请重建所有目标吗?

但是怎么告诉make如果在makefile改变之后,它会运行make clean然后make呢?

或者如何指示make在那种情况下运行其他命令?我是否必须写一种特殊的目标?

sur*_*esh 2

我相信您希望自动运行 clean,因为您希望在调用 make 时重建某些目标。FORCE这可以通过添加一个名为您想要始终构建其目标的规则的依赖项来实现,然后FORCE像这样定义:即没有规则也没有依赖项。

FORCE:
Run Code Online (Sandbox Code Playgroud)

请参阅http://www.gnu.org/software/make/manual/make.html#Force-Targets

如果您希望重新编译所有文件,请将以下内容添加到 makefile 中:

%.o : %.cpp FORCE
    $(CXX) -c $(CXXFLAGS) $< -o $@
Run Code Online (Sandbox Code Playgroud)