是因为在Makefile中,%是通配符,用于匹配文件名中的任意字符。当使用%作为目标时,Make会尝试将目标与依赖项中的文件名进行模式匹配,然后执行相应的规则。
然而,当目标中使用%时,Make会将其视为一个普通的字符串,而不是通配符。因此,如果目标中包含%字符,Make将无法正确匹配依赖项中的文件名,导致无法执行相应的规则。
为了解决这个问题,可以使用其他字符或字符串来代替%作为目标名称,以避免与通配符冲突。另外,还可以使用变量来动态生成目标名称,以实现更灵活的构建过程。
总结起来,使用%的Make目标不能像"Nothing to be to“中那样工作是因为%在Makefile中是通配符,用于匹配文件名中的任意字符,而不是作为普通的字符串使用。
领取专属 10元无门槛券
手把手带您无忧上云