在处理构建目标时,make 不会分隔文件和规则名称,因此,不会检查运行规则时是否会实际创建它声称要创建的文件。 例如,如果您有一个名为“test”的规则,该规则运行带有测试的脚本,则意外创建了名为“test”的文件,则将不再调用测试,因为 make 会认为目标已构建并且不需要任何操作(要解决 make 中的问题,您可以指定“.PHONY: test”指令)。 目标明确分隔文件和规则名称。
只为汇编指令提供一个参数时出现问题。
目标允许您使用任意数量的命名参数。 例如,您可以从名称中单独提取调试文件的符号:
与 shell 解释器交互时出现问题。 例如,需要控制文件名和目录名中的空格转义、执行每个命令时启动单独的 shell 解释器所造成的资源浪费、“$”字符的双重解释(在 shell 和 make 中都使用),考虑到缩进。