makefile与制表符有非常愚蠢的关系,每个规则的所有操作都由制表符标识......而No 4空格不制作制表符,只有制表符制作标签...检查我使用命令 cat -e -t -v makefile_name它显示了选项卡的存在^I和行结尾$两者对于确保依赖关系正确结束以及制表符标记规则的操作至关重要,这样它们很容易被make实用程序识别.....例:Kaizen ~/so_test $ cat -e -t -v mk.tall:ll$ ## here the $ is end of line ... $ll:ll.c $^Igcc -c -Wall -Werror -02 c.c ll.c -o ll $@ $<$ ## the ^I above means a tab was there before the action part, so this line is ok . $clean :$ \rm -fr ll$## see here there is no ^I which means , tab is not present .... ## in this case you need to open the file again and edit/ensure a tab ## starts the action part希望这可以帮助 !!