makeスクリプトで16進数を10進数に変換しますか?
-
07-07-2019 - |
質問
make スクリプトは次のように変数を設定しようとしています:
VER_DEC=$( perl -e "print hex(\"$(VER_HEX)\");" )
where VER_HEX
の値は 0a
です。
PerlはVER_HEXがゼロであると考えているようです。これは、変数が設定されていないことを意味します(ただし、メイクファイルのデバッグエコーによると です)。
塩基を変換するより簡単な方法はありますか?
もしそうなら、どのバージョンのmakeが必要ですか?
UPDATE:これはGNU Makefileです。 perlの呼び出しには、 $()
内に単語 shell
がありません。また、二重引用符でエスケープの問題が発生する可能性があります。
解決
VER_DEC=$(shell printf "%d" 0x$(VER_HEX))
Makefile
について話している場合。私には Makefile
のように見えないので、シェルのようです。 ( $(shell)
はGNU拡張機能だと思いますが、ほとんどの場合、バックティックで安全に置き換えることができます)。
所属していません StackOverflow