最近在写Makefile时,遇到了“ make: *** No rule to make target ' xxx ', needed by ' xxx '。 停止。”这个错误。这里分享我产生这个错误的原因。
之所以产生这个错误,是因为本人将VPATH这个变量拼写错误所造成的。
VPATH这个变量是Makefile中的一个特殊变量,它的作用是告诉Makefile去哪里寻找依赖文件和目标文件,如果没有定义这个变量,那么Makefile只会在自己所在的目录寻找依赖文件和目标文件。
告诉Makefile去哪里寻找依赖文件和目标文件有两种方法:
第一种就是在依赖文件和目标文件前面加上路径。
第二种就是通过VPATH这个变量,将Makefile可以寻找目标文件和依赖文件的路径写入VPATH这个变量,如
VPATH = src headers
那么Makefile就会首先在当前目录下寻找目标文件和依赖文件,如果找不到,就会到src文件夹下和headers文件夹下寻找。
我就是采用的第二种方法,但是由于VPATH这个变量名字写错了,所以就找不到对应的文件了,产生了这个错误。
希望可以帮助到遇到相同问题的朋友们。