У меня есть сложный make-файл, который, кажется, связывает мои библиотеки и исполняемые файлы каждый раз, когда я его вызываю. Я смог сузить проблему до простого make-файла:
1: all: prog
2:
3: .PHONY: prog
4: prog: prog.exe
5:
6: prog.exe: lib prog.o
7: touch prog.exe
8:
9: prog.o: prog.c
10: touch prog.o
11:
12: .PHONY: lib
13: lib: lib.so
14:
15: lib.so: lib.o
16: touch lib.so
17:
18: lib.o: lib.c
19: touch lib.o
20:
21: .PHONY: clean
22: clean:
23: rm *.so *.o *.exe
По какой-то причине в этом примере prog.exe создается каждый раз. Если я заменю lib в строке 6 на lib.so, то это сработает. Все же кажется, что я должен быть в состоянии сделать то, что я пытаюсь здесь. Что-то фундаментальное, что я упускаю?