找到 Makefile 模式规则,但没有找到配方 运行
Makefile Pattern Rule is found but recipe does not run
我的 makefile 具有以下模式规则来创建隐式规则:
%.cpp:
$(warning foo)
当我检查 make -d
的输出时,我看到这个隐式规则正在被发现并匹配一个文件。我确认当我删除模式规则时,make -d
的输出不再显示匹配项。但是,即使找到隐式规则,也不会显示警告。 食谱不是 运行,即使隐式规则匹配 。
什么给了?
该食谱告诉 make 如何创建 一个 %.cpp
文件(并且不给它任何先决条件)。
您预计什么时候会 运行?
它不会 运行 任何现有的 *.cpp
文件,因为缺少先决条件意味着 make 认为文件是最新的。
试试 运行ning make totally-doesnt-exist.cpp
你应该会看到警告。
我的 makefile 具有以下模式规则来创建隐式规则:
%.cpp:
$(warning foo)
当我检查 make -d
的输出时,我看到这个隐式规则正在被发现并匹配一个文件。我确认当我删除模式规则时,make -d
的输出不再显示匹配项。但是,即使找到隐式规则,也不会显示警告。 食谱不是 运行,即使隐式规则匹配 。
什么给了?
该食谱告诉 make 如何创建 一个 %.cpp
文件(并且不给它任何先决条件)。
您预计什么时候会 运行?
它不会 运行 任何现有的 *.cpp
文件,因为缺少先决条件意味着 make 认为文件是最新的。
试试 运行ning make totally-doesnt-exist.cpp
你应该会看到警告。