在makefile中,作为规则目标的单破折号是什么意思?

Cha*_*Kim 6 makefile

我看到一个文件 .missing-syscalls.d ,其中包含

-:  /home/ckim/MVP/snake_linux_3.3.mvpe/include/linux/kconfig.h \
 include/generated/autoconf.h \
 /home/ckim/MVP/snake_linux_3.3.mvpe/arch/sparc/include/asm/types.h \
 include/asm-generic/int-ll64.h \
 /home/ckim/MVP/snake_linux_3.3.mvpe/arch/sparc/include/asm/bitsperlong.h \
 include/asm-generic/bitsperlong.h \
 /home/ckim/MVP/snake_linux_3.3.mvpe/arch/sparc/include/asm/unistd.h
Run Code Online (Sandbox Code Playgroud)

我知道 .d 文件仅用于显示依赖性。但是什么是“-”作为目标?

Arn*_*tig 6

makefile 中命令前的连字符用于抑制错误并继续而不是像这样失败:

clean:
        -rm -f *.o
Run Code Online (Sandbox Code Playgroud)

makefile 中的 include 语法也是如此,以抑制在文件不可用时会出现的错误消息,如下所示:

-include $(SRC:%.c=%.d)
Run Code Online (Sandbox Code Playgroud)

我假设 .missing-syscalls.d 文件的使用方式相同,忽略它试图包含的不存在的头文件。