Я имею довольно мало опыта winforms и только играл с WPF немного, но я продаюсь.
, Почему?
НАМНОГО больше гибкости. Если Вы хотите сделать что-либо нестандартное в winforms, боль и страдание следует, но в WPF это просто.
Намного лучшая привязка данных
Легче разработать (как только Вы понимаете базовые понятия, которые, к сожалению, будут требовать времени)
Я предполагаю, что wget не обновляет метку времени на hello.c, но сохраняет удаленную метку времени. Это заставляет make
полагать, что hello.c устарел, и пытается загрузить его снова. Попробуйте
hello.c:
wget ...
touch $@
РЕДАКТИРОВАТЬ: Параметр -N для wget не позволит wget загружать что-либо, если удаленный файл не является более новым (но, конечно, он все равно будет проверять временную метку удаленного файла).
Поскольку Makefile должен работать так, как вы хотите, вы необходимо проверить несколько маловероятных случаев:
1) Убедитесь, что у вас нет правил .PHONY
, в которых упоминается исходный файл.
2) Убедитесь, что имя исходной цели соответствует пути к файлу вы загружаете.
Вы также можете попробовать запустить make -d
, чтобы понять, почему программа make считает, что ей необходимо «пересобрать» исходный файл.
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
не была выполнена во второй раз)