Makefile错误消息:无需执行任何操作

时间:2011-01-06 23:24:57

标签: makefile

我需要你的帮助!

为了获得与照片列表相关联的缩略图列表,我使用了以下Makefile(项目目录中有2个子目录拇指和图片)

all: $(patsubst pictures/%.jpg, thumbs/%.jpg, $(wilcard pictures/*.jpg))
thumbs/%.jpg: pictures/%.jpg
    convert -thumbnail 100 $< $*

问题是我总是得到相同的错误消息“没有什么可以为'所有'做”,好像没有依赖关系。 :( 对此有任何解释吗?

1 个答案:

答案 0 :(得分:3)

这是一个简单的拼写错误:只需将缺少的 d 添加到$(wildcard ...)

当您调用不存在的函数时,Make不会抛出错误,因此该函数调用的结果只是一个空字符串。这使得您的all目标没有依赖关系,而且您就是这样!

为了将来参考,我通过在makefile的开头添加以下行找到了这个错误:

$(info $(patsubst pictures/%.jpg, thumbs/%.jpg, $(wilcard pictures/*.jpg)))

$(info ...)函数将打印到控制台,控制台可以非常用于调试。在这种情况下,它打印出一个空白行。为了进一步调试,我尝试了这个:

$(info $(wilcard pictures/*.jpg))

哪个转储了一个空字符串。那时,只需要小心眯眼:)