字符串中的变量名称不评估

问题描述 投票:0回答:1

我正在写一个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)
makefile gnu-make
1个回答
1
投票

使用变量替换两次,不要忘记.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)
© www.soinside.com 2019 - 2024. All rights reserved.