你觉得怎么样/ %/
规则就是做(除了让你感到困惑和make
- 和我)?您想通过%/
bit?
您可以在冒号左侧有两个(或更多)目标,但它们都需要小于百分比。
prog1 prog2: something
$(CC) -o $@ [email protected] /cdn-cgi/l/email-protection ${LIBRARIES}
The %
元字符不能与没有任何规则的规则一起使用%
在其中,但是make
正在翻译:
/ %/:
类似于prog1 prog2
示例,但其中一个目标有%
另一个则不然,并且您不能将它们混淆。这/
规则是显式规则;它似乎是有关如何更新系统根目录的说明。这%/
是隐含规则;它可能正在做一些与更新目录相关的事情。
从评论中复制一些材料:
DIRECTORY_BUILD_RULES = \
$(cmd_crmodverdir); \
$(Q)$(MAKE) KBUILD_MODULES=$(if $(CONFIG_MODULES),1) $(build)=$(build-dir)
/: prepare scripts FORCE; $(DIRECTORY_BUILD_RULES)
%/: prepare scripts FORCE; $(DIRECTORY_BUILD_RULES)
这个符号应该有效(这就是我在评论中使用它的原因),但是我会在makefile
is:
DIRECTORY_DEPENDENCIES = prepare scripts FORCE
DIRECTORY_BUILD_RULES = \
$(cmd_crmodverdir); \
$(Q)$(MAKE) KBUILD_MODULES=$(if $(CONFIG_MODULES),1) $(build)=$(build-dir)
/: $(DIRECTORY_DEPENDENCIES)
$(DIRECTORY_BUILD_RULES)
%/: $(DIRECTORY_DEPENDENCIES)
$(DIRECTORY_BUILD_RULES)
如果这仍然引起问题,请查看第一个(/:
)规则确实如此。你确定需要吗?