Как записать, что Make-файл управляет для загрузки файла, только если он отсутствует?

Я имею довольно мало опыта winforms и только играл с WPF немного, но я продаюсь.

, Почему?

  • НАМНОГО больше гибкости. Если Вы хотите сделать что-либо нестандартное в winforms, боль и страдание следует, но в WPF это просто.

  • Намного лучшая привязка данных

  • Легче разработать (как только Вы понимаете базовые понятия, которые, к сожалению, будут требовать времени)

11
задан abbot 19 October 2009 в 10:47
поделиться

3 ответа

Я предполагаю, что wget не обновляет метку времени на hello.c, но сохраняет удаленную метку времени. Это заставляет make полагать, что hello.c устарел, и пытается загрузить его снова. Попробуйте

hello.c:
        wget ...
        touch $@

РЕДАКТИРОВАТЬ: Параметр -N для wget не позволит wget загружать что-либо, если удаленный файл не является более новым (но, конечно, он все равно будет проверять временную метку удаленного файла).

13
ответ дан 3 December 2019 в 03:18
поделиться

Поскольку Makefile должен работать так, как вы хотите, вы необходимо проверить несколько маловероятных случаев:

1) Убедитесь, что у вас нет правил .PHONY , в которых упоминается исходный файл.

2) Убедитесь, что имя исходной цели соответствует пути к файлу вы загружаете.

Вы также можете попробовать запустить make -d , чтобы понять, почему программа make считает, что ей необходимо «пересобрать» исходный файл.

7
ответ дан 3 December 2019 в 03:18
поделиться

Makefile , который вы написали, загружает hello.c , только если он отсутствует. Возможно, вы еще что-то делаете не так? См., Например:

hello: hello.c
        gcc -o hello hello.c

hello.c:
        echo 'int main() {}' > hello.c

И:

% make
echo 'int main() {}' > hello.c
gcc -o hello hello.c
% rm hello
% make
gcc -o hello hello.c
% rm hello*
% make
echo 'int main() {}' > hello.c
gcc -o hello hello.c

(команда echo не была выполнена во второй раз)

7
ответ дан 3 December 2019 в 03:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: