gpt4 book ai didi

linux - 为什么在 makefile 中包含/dev/null?

转载 作者:太空狗 更新时间:2023-10-29 12:16:01 25 4
gpt4 key购买 nike

我在 makefile 中遇到了一行。该行是:

-include $(wildcard makefile.mk) /dev/null

我不明白 include 行中/dev/null 的用途。是故意的还是失误?也许他们打算将输出发送到那里?我对 makefile 还是比较陌生,有人可以帮助我理解这一点吗?

最佳答案

我认为它用于确保,即使通配符完全展开,include 也会产生至少一个文件 -/dev/null。也许我可以这样解释......想象一下你有这样一个假设的汇编

INCLUDES=$(wildcard /usr/inc*)
CC -I INCLUDES prog.c -o prog

如果您的(诚然很奇怪)环境在/usr/include 中没有任何内容,您的编译命令将扩展为

CC -I prog.c -o prog

这很可能会出错。所以添加 /dev/null 可能会避免这种情况。

我并不是说它有必要,我只是说我认为这可能就是它的目的。类似于程序员使用的时候

grep pattern file /dev/null

而不是更现代

grep -H pattern file

因为它是一个肯定存在的文件,因此 grep 将接收两个文件作为参数,因此会告诉您它在其中找到模式的文件的名称 - 就像您已指定 -H

另一个例子是 Solaris 上的 format 命令。它为您提供了所有附加磁盘的可爱列表,但随后会一直卡在那里,直到您选择一个磁盘——如果您想从脚本中解析列表,这并不理想。同样,您可以使用/dev/null,如果您这样做,它将列出磁盘并退出

format < /dev/null

关于linux - 为什么在 makefile 中包含/dev/null?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24519067/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com