c++ - Make:变量无法从 shell 调用分配
问题描述
# makefile
SHELL:=/bin/bash
PATH:=/path/to/new/programs:$(PATH)
my_var:=$(shell which program)
rule:
echo $(my_var)
which program
#output
$: make rule
echo
which program
/path/to/program
# prints nothing
我已经尝试了所有方法,实际上还记得在我之前创建 makefile 时让它工作。它正在变成一个泥潭——我需要做的就是在安装之前检查一个 exe 是否存在。
解决方案
which
如果您不在SHELL
makefile中设置变量,显式是否有效?
设置SHELL
变量仅影响配方。它不用于该$(shell ...)
功能。您可以使用:
my_var := $(shell /bin/bash -c 'which function')
但是在我的系统上,即使使用默认 shell 也可以使用which
. 也许您的系统以某种方式有所不同。
注意当然会which
找到程序,而不是功能......
推荐阅读
- reactjs - React-Select - 带有自定义处理程序的可点击值
- opencv - 消除鱼眼相机中由于自动曝光导致的闪烁
- cmd - 如何从 Windows 命令提示符打开 teraterm SSH/Telnet 连接?
- filter - 在第二列中按 IF 条件对一列求和 - Google 表格
- qt - 我们可以添加多个模型并将其导出到 qml 吗?
- sql-server - Google Data Fusion 中的 SQL Server 源不起作用(SSL 握手问题)
- java - Eclipse IDE 将 jar 直接转换为可执行 jar。如何创建jar文件?
- ios - 单击 uiwebview 的文本字段时应用程序崩溃
- c# - 将 JS 数组字符串转换为 C# 列表
- excel - Excel VBA 格式