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.

War es hilfreich?

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).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top