2011-01-06 5 views
1

пожалуйста, мне нужна ваша помощь!Сообщение об ошибке Makefile: ничего не нужно

Для того, чтобы получить список миниатюр, связанные со списком фотографий, Я использовать следующий Makefile (каталог проекта имеет 2 подкаталогов пальцев и фотографии)

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

Проблема заключается в том, что я всегда получите то же сообщение об ошибке «Ничего не нужно делать для« все », как если бы не было зависимостей. :( ли кто-нибудь объяснить, что

+0

Извините, я имею в виду сообщение об ошибке, а не meddae: p – mimou

+0

Я изменил название для вас, но это ваш вопрос, так что вы действительно можете его отредактировать. ':)' –

+0

Продолжить чтение здесь __GNU сделать со многими целевыми каталогами__ (http://stackoverflow.com/questions/934127/gnu-make-with-many-target-directories) –

ответ

3

Это просто опечатка: просто добавить отсутствующий д к $(wildcard ...)

Марка не выдаст ошибку, когда вы делаете вызов функции, которая не существует, поэтому результат этого вызова функции - это просто пустая строка. Это означает, что ваш целевой объект all не имеет зависимостей, и вот вы!

Для справки в будущем я нашел эту ошибку, добавив следующую строку в начале makefile:

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

Функция $(info ...) выведет на консоль, что может быть очень полезно для отладки. В этом случае он печатал пустую строку. Для отладки дальше, я попытался это:

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

Какие также сбрасывали пустую строку. В этот момент все, что нужно, было осторожным прищуриванием. :)

+0

Спасибо очень очень :) :) Я заметил, что d не хватает: p – mimou

+0

Добро пожаловать! Удачи вам в кодировании ':)' –

Смежные вопросы