makefile - 字符串中的变量名不计算
问题描述
我正在写一个makefile。在我的用例中,变量的名称存储在另一个变量中。我试图从功能评估它,但它没有正确评估。
在代码中,我希望“devinit”评估为 UART_init。我的代码有什么错误?
VAR=MYDEV
MYDEV_init=UART_init
define create_kernels_c
echo GGGGG $(VAR)
baseinit=$$(echo $(VAR)_init);
$$(eval devinit=\$$baseinit);
echo devinit $$devinit;
endef
all:
@$(call create_kernels_c)
解决方案
两次使用变量替换,不要忘记(或到处.ONESHELL:
追加):;\<CR>
VAR=MYDEV
MYDEV_init=UART_init
define create_kernels_c
echo GGGGG $(VAR)
devinit=$($(VAR)_init)
echo devinit $$devinit
endef
.ONESHELL:
all:
@$(call create_kernels_c)
推荐阅读
- reactjs - 反应返回多个元素而不创建容器元素
- google-maps - 如何在没有标记的反应谷歌地图上显示模式?
- prolog - 我如何运行序言文件
- scenekit - 用户旋转场景/相机时如何不旋转 SCNSphere 中的环绕文本
- python - 如何修复小但相关的 Python 错误?
- ruby-on-rails - Rails autoload_paths 在 Rails 控制台中无法正常工作
- django - 最初如何使 django 模型 ManyToMany 字段为空?
- firebase - 无法在 Firebase 上写入数据
- java - 数组排序将一个元素留在错误的位置
- apache-spark - PySpark 中 monotonically_increasing_id 的用途是什么