首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将值赋值给Makefile中的变量?

如何将值赋值给Makefile中的变量?
EN

Stack Overflow用户
提问于 2022-04-25 15:33:35
回答 1查看 113关注 0票数 0

我用这个问题:Assign a makefile variable value to a bash command result?试图解决我的问题,但它似乎不起作用。

我有一个一行程序来获取连接的Arduino的当前端口,在我的Makefile中需要它作为参数:

代码语言:javascript
复制
[bf@localhost GameCode]$ arduino-cli board list | grep arduino:megaavr:nona4809 | awk '{ print $1; }'
/dev/ttyACM0

就像你看到的,这件事很好。但是现在我想在我的Makefile中使用它

代码语言:javascript
复制
BOARD=arduino:megaavr:nona4809
PORT=$(shell arduino-cli board list | grep $$BOARD | awk '{ print $$1; }')
OUTPUT=mycode.hex

program: $(OUTPUT)
     eeprom-program -f $(OUTPUT) -p $(PORT)

但是,$(PORT)似乎完全是空的。我知道我可以用一个shell脚本来修复这个问题,但是由于这只是一行,所以我不想用小脚本干扰我的目录。

我怎样才能在我的Makefile中得到这个命令呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-04-25 15:50:36

在这里..。

BOARD=arduino:megaavr:nona4809 PORT=$(shell arduino-cli board list \ grep $$BOARD $$BOARD awk '{ print $$1;}')

..。正确地将$1转义为$$1,将前者传递给shell。但是,您不希望将$BOARD传递到shell本身。相反,您希望make扩展这一项:

代码语言:javascript
复制
BOARD=arduino:megaavr:nona4809
PORT=$(shell arduino-cli board list | grep $(BOARD) | awk '{ print $$1; }')
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72002079

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档