gpt4 book ai didi

makefile - 在 Makefile 中打印 : @echo vs $(info )

转载 作者:行者123 更新时间:2023-12-04 17:31:04 59 4
gpt4 key购买 nike

makefile 中这两个命令有什么区别:

@echo "Hello World"
$(info Hello World)

看起来, echoinfo打印相同的输出,那么区别在哪里?
什么时候使用哪一个?

最佳答案

那么,echo是一个shell命令。所以如果你把它放在一个 recipe 中,一个 shell 将被调用来运行它,shell 命令将生成输出:

foo: ; @echo "Hello World"
运行 /bin/sh -c 'echo "Hello World"' .它只能在配方中使用。它适用于任何版本的 make 和任何 POSIX shell。因为它调用一个shell,所以您可能需要关心引用问题等(当然不是在这个简单的例子中)。 info是一个 GNU make 函数。它由 make 直接处理:不调用 shell。它可以出现在 makefile 中的任何地方,而不仅仅是出现在配方中。它不可移植到其他版本的 make。因为没有调用 shell,所以不存在引用问题。
然而,因为 info是一个 make 函数,它在调用 shell 之前由 make 解析:这意味着它不能显示在配方中设置的 shell 变量;例如:
foo: ; @for i in a b c d; do $(info $$i); done
不能工作;您必须使用 echo这里。

关于makefile - 在 Makefile 中打印 : @echo vs $(info ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47367589/

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