Makefile 但是,UILD.mk不存在。如果再次运行它,BUILD.mk将不会再次生成,因为它已经存在并且比其先决条件更新,因此将只读取一次整个生成文件。可能您只考虑了这样一次运行的输出而感到困惑。在BUILD.mk中,尝试将touch$@替换为echo'$$(警告我

Makefile 但是,UILD.mk不存在。如果再次运行它,BUILD.mk将不会再次生成,因为它已经存在并且比其先决条件更新,因此将只读取一次整个生成文件。可能您只考虑了这样一次运行的输出而感到困惑。在BUILD.mk中,尝试将touch$@替换为echo'$$(警告我,makefile,Makefile,但是,UILD.mk不存在。如果再次运行它,BUILD.mk将不会再次生成,因为它已经存在并且比其先决条件更新,因此将只读取一次整个生成文件。可能您只考虑了这样一次运行的输出而感到困惑。在BUILD.mk中,尝试将touch$@替换为echo'$$(警告我在这里)>$@@tripleee谢谢。我试过你的建议,结果和原来的差不多。它看起来像是在不打印文件创建命令的情况下更新BUILD.mk文件,那么该文件就不需要更新,因此它不会重新读取整个Makefile。我不懂原理。在这两种情况下我都得到了更多


但是,UILD.mk不存在。如果再次运行它,
BUILD.mk
将不会再次生成,因为它已经存在并且比其先决条件更新,因此将只读取一次整个生成文件。可能您只考虑了这样一次运行的输出而感到困惑。

BUILD.mk
中,尝试将
touch$@
替换为
echo'$$(警告我在这里)>$@
@tripleee谢谢。我试过你的建议,结果和原来的差不多。它看起来像是在不打印文件创建命令的情况下更新
BUILD.mk
文件,那么该文件就不需要更新,因此它不会重新读取整个Makefile。我不懂原理。在这两种情况下我都得到了更多的输出。演示:在
BUILD.mk
中,尝试将
touch$@
替换为
echo'$$(警告我在这里)>$@
@tripleee谢谢。我试过你的建议,结果和原来的差不多。它看起来像是在不打印文件创建命令的情况下更新
BUILD.mk
文件,那么该文件就不需要更新,因此它不会重新读取整个Makefile。我不懂原理。在这两种情况下我都得到了更多的输出。演示: