在make脚本中将十六进制转换为十进制

时间:2009-09-15 17:46:41

标签: makefile hex base-conversion

make 脚本正在尝试按如下方式设置变量:

VER_DEC=$( perl -e "print hex(\"$(VER_HEX)\");" )

其中VER_HEX的值恰好为0a

Perl似乎认为VER_HEX为零,暗示该变量未设置(但,根据makefile中的调试回显)。

make有更简单的方法来转换碱基吗?

如果是这样,需要什么版本的make?

更新:这是一个GNU Makefile。对perl的调用缺少shell内的单词$( ),并且可能会出现双引号的转义问题。

1 个答案:

答案 0 :(得分:2)

VER_DEC=$(shell printf "%d" 0x$(VER_HEX))

如果你在谈论Makefile。因为你对我来说看起来不像Makefile,更像是shell。 (我认为$(shell )是GNU扩展,但大多数时候你可以用反引号安全地替换它。)