Konvertieren hex in Make-Skript in Dezimalzahlen?
-
07-07-2019 - |
Frage
make Skript versucht, eine Variable zu setzen, wie folgt:
VER_DEC=$( perl -e "print hex(\"$(VER_HEX)\");" )
Dabei gilt VER_HEX
einen Wert von 0a
haben passiert.
Perl scheint zu glauben, dass VER_HEX Null ist, was bedeutet, dass die Variable nicht gesetzt ist (aber es ist , nach einem Debug-Echo in der Make-Datei).
Hat eine einfachere Art und Weise macht Basen zu umwandeln?
Wenn ja, welche Version von make erforderlich ist?
UPDATE: Dies ist ein GNU Makefile. Der Aufruf von Perl ist das Wort shell
innerhalb des $( )
fehlt sowie möglicherweise mit Flucht Problemen mit den doppelten Anführungszeichen.
Lösung
VER_DEC=$(shell printf "%d" 0x$(VER_HEX))
Wenn Sie über Makefile
sprechen. Weil Sie schaut nicht, wie Makefile
mir, eher wie Shell. (Ich denke, $(shell )
GNU-Erweiterung ist, aber die meiste Zeit können Sie sicher ersetzen Sie es mit Backticks).