makefile不显示linux命令

worktile 其他 257

回复

共3条回复 我来回复
  • 不及物动词的头像
    不及物动词
    这个人很懒,什么都没有留下~
    评论

    Makefile是一个用于自动化编译和构建程序的工具,它并不负责显示Linux命令的执行结果。Makefile主要用于定义源文件的编译规则和依赖关系,以及生成最终的可执行文件或目标文件。

    在Makefile中,可以通过命令行调用Linux命令来执行一些必要的操作,例如编译源文件、链接库文件等。但是,默认情况下,Linux命令的执行结果并不会在终端上显示出来。

    如果你希望在Makefile中显示Linux命令的执行结果,可以使用特定的命令行选项。例如,在命令前加上`@`,可以让该命令在执行时不显示命令本身,只显示命令的结果。示例如下:

    “`makefile
    target:
    @echo “Hello, World!”
    “`

    在上面的示例中,`echo`命令会输出”Hello, World!”,但是在终端中不会显示命令本身。

    另外,你也可以在Makefile中使用`$(shell)`函数来执行Linux命令,并将结果赋值给变量。示例如下:

    “`makefile
    OUTPUT := $(shell echo “Hello, World!”)

    target:
    @echo $(OUTPUT)
    “`

    在上面的示例中,`$(shell)`函数会执行`echo`命令,并将输出结果赋值给变量`OUTPUT`。然后,在`target`规则中使用`echo`命令将变量`OUTPUT`的值输出到终端中。

    总之,Makefile本身并不负责显示Linux命令的执行结果,但是你可以使用特定的命令行选项或`$(shell)`函数来实现在Makefile中显示命令执行结果的需求。

    2年前 0条评论
  • fiy的头像
    fiy
    Worktile&PingCode市场小伙伴
    评论

    当在Makefile中执行Linux命令时,Makefile默认情况下不会显示命令的输出结果。这是因为Makefile的设计初衷是作为一个构建系统工具,其主要任务是根据依赖关系构建和更新文件,而不是输出命令的结果。

    然而,我们可以通过一些方法来使Makefile显示Linux命令的输出结果:

    1. 在目标规则中使用@符号:在Makefile的目标规则前使用@符号,可以使得该规则执行时,不显示执行的命令。例如:

    “`
    target:
    @echo “This is a Linux command”
    “`

    2. 利用命令行调试参数:在执行Makefile时,可以加上-v参数,使用命令行调试模式。这样可以显示Makefile中的每条命令以及其输出结果。例如:

    “`
    make -v
    “`

    3. 使用命令替换:可以使用命令替换的方式,将命令的输出结果赋值给一个变量,然后在Makefile中使用该变量。例如:

    “`
    VAR := $(shell command)
    “`

    4. 使用特殊的目标:可以在Makefile中创建一个特殊的目标,如debug,用于在执行Makefile时输出命令的结果。例如:

    “`
    .PHONY: debug
    debug:
    @echo “This is a Linux command”
    “`

    5. 重定向命令输出结果:使用重定向符号”>”将命令的输出结果重定向到一个文件中,然后在Makefile中读取该文件的内容。例如:

    “`
    target:
    command > output.txt
    @cat output.txt
    “`

    总之,虽然Makefile默认情况下不显示Linux命令的输出结果,但我们可以通过上述方法来实现Makefile显示命令的输出结果。

    2年前 0条评论
  • worktile的头像
    worktile
    Worktile官方账号
    评论

    在Makefile中,可以使用Linux命令来执行一系列操作,但默认情况下,Makefile并不会打印出这些命令的输出。要显示Linux命令的输出,可以通过以下方法实现:

    1. 使用@符号:在Makefile中,如果希望执行的命令不显示在终端中,可以在命令前面加上@符号。例如:
    “`
    target:
    @echo “Hello, World!”
    “`
    在上面的例子中,当执行`make target`时,终端将只显示`Hello, World!`而不会显示`echo “Hello, World!”`。

    2. 使用变量:将命令保存在一个变量中,然后在规则中调用该变量。这样可以增加代码的可读性。例如:
    “`
    CMD = echo “Hello, World!”
    target:
    $(CMD)
    “`
    在上面的例子中,执行`make target`时,终端将显示`Hello, World!`。

    3. 使用命令的返回值:可以使用`$$?`来获取命令的返回值,并根据返回值来进行相应的处理。例如:
    “`
    target:
    @echo “Hello, World!”
    @echo “Command exit status: $$?”
    “`
    在上面的例子中,执行`make target`时,终端将显示`Hello, World!`以及命令的退出状态。

    注意:如果在Makefile中执行的命令需要输出大量的信息,这可能会导致终端输出过于冗杂,不利于阅读。因此在编写Makefile时,要根据实际需求决定是否显示命令的输出。

    2年前 0条评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部