gpt4 book ai didi

Makefile:为什么命令替换不能在 $(shell) 函数中工作?

转载 作者:行者123 更新时间:2023-12-04 22:57:47 24 4
gpt4 key购买 nike

我在 Makefile 中有一个变量:

JAVABIN = $(shell dirname $(which java))

当我回应 JAVA_HOME Makefile 中的变量,变量定义提示:
dirname: missing operand
Try 'dirname --help' for more information.

当我引用 $(which java) , JAVABIN. ,所以结果是错误的。我不明白如何 制作 读取一个 Makefile,也许这是原因。非常感谢。

最佳答案

你需要逃避美元:

JAVABIN = $(shell dirname $$(which java))

6.1 Basics of Variable References .

您收到的特定错误消息是由 $(which java) 引起的。片扩展为空字符串,因为它是一个 undefined variable 。因此 dirname system 命令最终没有看到任何参数,在这种情况下它会提示“缺少操作数”。

关于Makefile:为什么命令替换不能在 $(shell) 函数中工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37649816/

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