- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我知道 .PHONY 的作用。
如果在我的 Makefile 所在的文件夹中,我添加了一个名为 clean 的空文件,并且在我运行 make clean 之后所有的 clean 目标都不会被执行,因为文件中没有任何变化,所以目标不会运行,这是正确的。如果我添加 .PHONY: clean,则 clean 被视为命令,这也是正确的。
我的问题是为什么这种行为不会发生在 all 目标上,因为我在文件夹中添加了一个 all 文件。所以基本上 all 目标仍然执行如果是 .PHONY: all
我有休闲的 makefile 代码。
all: test1 test2
test1: test1.o
test1.o: test1.c
test2: test2.o
test2.o: test2.c
clean:
rm -rf *.o test1 test2
最佳答案
你怎么知道 all
规则“仍在执行”?该规则没有配方,因此无法“执行”。
如果您的意思是即使 all
文件存在于本地目录中,make
仍在构建目标 test1
和 test2
,这就是 make 的工作原理(这与虚假目标与非虚假目标没有任何关系)。当 make 决定是否首先构建特定目标时,它会尝试构建该目标的所有先决条件,以及那些目标的所有先决条件,等等。只有在所有这些都完成之后,让
知道是否构建第一个目标(在本例中为all
)。
关于makefile - 为什么 "make all"没有将 "all"添加到 .PHONY 目标就按预期工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51225819/
我仍然不明白为什么 Makefile 中的“虚假”规则将“.PHONY”作为其目标。作为先决条件,这会更合乎逻辑。 我需要详细说明这一点吗?如果A依赖于B并且B是假的,那么A也是假的。因此,与 .PH
这个问题在这里已经有了答案: What is the purpose of .PHONY in a Makefile? (9 个回答) 关闭 7 年前。 我正在使用生成文件来运行测试。我不确定 .P
考虑一个长 makefile目标众多,都是 PHONY (意味着目标名称不代表现有文件)。 我可以这样做: .PHONY: a a: do someting a .PHONY: b b:
我有一个复杂的 makefile,似乎每次调用它时都会重新链接我的库和可执行文件。我能够将问题缩小到一个简单的 makefile: 1: all: prog 2: 3: .PHONY: prog
我有一个复杂的 makefile,似乎每次调用它时都会重新链接我的库和可执行文件。我能够将问题缩小到一个简单的 makefile: 1: all: prog 2: 3: .PHONY: prog
我有以下递归 makefile: .PHONY: all clean %.subdir: $(MAKE) -C src $* $(MAKE) -C dict $* all: all.s
我有使用 .Phony 的 Makefile,它工作正常 我的问题是有更简洁的方式来编写它而不是在每个目标之前 all: app1 app2 .PHONY: app1 app1: echo "
我正在阅读 make 手册,最后我读到了这一段: Here is how we could write a make rule for cleaning our example editor: cle
在 makefile 中搜索 .PHONY 的用法时,我遇到了 this上面写着类似 .PHONY also allows you to have targets that do not have a
Makefile 中的 .PHONY 是什么意思?我已经经历过this ,但是太复杂了。 有人可以简单地向我解释一下吗? 最佳答案 默认情况下,Makefile 目标是“文件目标” - 它们用于从其他
docs提供: '.EXPORT_ALL_VARIABLES' Simply by being mentioned as a target, this tells 'make' to export a
我已经摸索了大约一个小时了,事实证明 Google 的用途有限。我有一个包含图表的报告的 Makefile。这些图表由 graphs/目录中的 .plot 文件表示,gnuplot 用于从它们生成 .
我有一个Makefile,其中没有目标引用文件,所以如果这可以在某个循环中完成,那就是方便。 是否有某种方法可以将 makefile 中的每个目标设置为 .PHONY ? 我问这个问题的原因是我不想让
我有一个大.PHONY命令: .PHONY: clean cleanall 我可以将其分成多个部分,如下所示吗? .PHONY: clean clean: rm -rf build/ .PHO
我正在将 Makefile 转换为 Shakefile,但我不确定如何处理 PHONY make 目标(clean、install 等)。 )。我尝试过类似的事情: main = shake shak
有人可以阐明这里的区别吗: $(tsdir)/proj 具有先决条件 $(tsdir)/proja 和 $(tsdir)/projb。我希望每次必须构建 proj 时调用 proja 和 projb
一个 makefile 有一个假目标 libs,还有一个要进入的目录 libs。在一台机器上运行良好,而在另一台机器上它不会进入 libs 目标的 libs 目录。在这两种情况下,gnu make 版
我正在尝试让一些依赖安装目标在我的 Makefile 中工作,如下所示: .PHONY: install-everything install-part1 install-part2 install-
我知道 .PHONY 的作用。 如果在我的 Makefile 所在的文件夹中,我添加了一个名为 clean 的空文件,并且在我运行 make clean 之后所有的 clean 目标都不会被执行,因为
.PHONY: b c: a @touch c @echo "Changed" a: b b: @date +%s > a 使用示例 make 文件运行 make 会导致在第一
我是一名优秀的程序员,十分优秀!