在make脚本中将十六进制转换为十进制
-
07-07-2019 - |
题
make 脚本正在尝试按如下方式设置变量:
VER_DEC=$( perl -e "print hex(\"$(VER_HEX)\");" )
其中 VER_HEX
的值恰好为 0a
。
Perl似乎认为VER_HEX为零,暗示该变量未设置(但是,根据makefile中的调试回显)。
make有更简单的方法来转换碱基吗?
如果是这样,需要什么版本的make?
更新:这是一个GNU Makefile。 perl的调用缺少 $()
中的 shell
这个词,并且可能有双引号的转义问题。
解决方案
VER_DEC=$(shell printf "%d" 0x$(VER_HEX))
如果您正在谈论 Makefile
。因为你看起来不像 Makefile
,更像是shell。 (我认为 $(shell)
是GNU扩展,但大多数时候你可以用反引号安全地替换它。)
不隶属于 StackOverflow