小编use*_*226的帖子

为什么.PHONY不能在这种情况下工作?

我有一个复杂的makefile,每次调用它时似乎都会重新链接我的库和可执行文件.我能够将问题缩小到一个简单的makefile:

 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
Run Code Online (Sandbox Code Playgroud)

出于某种原因,这个例子,每次都会创建prog.exe.如果我用lib.so替换第6行的lib,那么它可以工作.但似乎我应该能够做我在这里尝试的事情.有什么根本我缺席的吗?

makefile

2
推荐指数
1
解决办法
2788
查看次数

标签 统计

makefile ×1