代码之家  ›  专栏  ›  技术社区  ›  system PAUSE

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

  •  0
  • system PAUSE  · 技术社区  · 16 年前

    A. 脚本正在尝试设置一个变量,如下所示:

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

    哪里 VER_HEX 恰好有一个值 0a .

    Perl似乎认为VER_HEX为零,这意味着未设置变量(但 ,根据makefile中的调试回显)。

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

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

    更新:这是一个GNU生成文件。对perl的调用缺少这个词 shell 内部 $( ) 以及双引号可能存在的转义问题。

    1 回复  |  直到 16 年前
        1
  •  2
  •   Michael Krelin - hacker    16 年前
    VER_DEC=$(shell printf "%d" 0x$(VER_HEX))
    

    如果你说的是 Makefile 生成文件 对我来说,更像贝壳。(我想 $(shell )