GNU默认情况下使用静音

 唯1色彩黄 发布于 2023-01-12 08:25

是否有可能在默认情况下禁止命令回显Makefile

我知道make--silent模式下运行会这样做,因为它会为每个命令添加前缀@.

我正在寻找一个我可以包含 Makefile中的命令或节,省去了乱扔垃圾@或让用户手动静音的麻烦.

3 个回答
  • 如果你定义目标.SILENT:,那么make将不会回显任何东西.通常最好保护定义,因此您可以轻松将其关闭:

    ifndef VERBOSE
    .SILENT:
    endif
    

    现在默认情况下,make将不会打印任何内容,但如果您运行make VERBOSE=1,它将打印.

    请注意,尽管手册中的声明声称.SILENT已经过时 - 如果保护得当,它通常要比(更有用和更灵活)更好@.

    .SILENT目标不应该是第一个对你Makefile,否则make将默认使用它.

    2023-01-12 08:33 回答
  • 您可以--silentMAKEFLAGS开头添加变量Makefile:

    MAKEFLAGS += --silent
    
    all:
        echo foobar
    
    .PHONY: all
    

    你将拥有:

    $ make
    foobar
    

    2023-01-12 08:34 回答
  • 根据GNU Make的手册,您可以使用特殊目标.SILENT

    注意手册说的那个

    .SILENT基本上是过时的,因为'@'更灵活.

    但似乎按预期工作.以下代码使所有目标静默.

    .SILENT:
    
    hoge:
        echo hoge
    

    以下示例仅对all目标进行静默

    .SILENT: hoge
    
    hoge:
        echo hoge
    
    fuga:
        echo fuga
    

    2023-01-12 08:36 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有