Convertire esadecimale in decimale nello script di creazione?
-
07-07-2019 - |
Domanda
Uno script make sta tentando di impostare una variabile come segue:
VER_DEC=$( perl -e "print hex(\"$(VER_HEX)\");" )
dove VER_HEX
sembra avere un valore di 0a
.
Perl sembra pensare che VER_HEX sia zero, il che implica che la variabile non è impostata (ma è , secondo un'eco di debug nel makefile).
Ha un modo più semplice per convertire le basi?
In tal caso, quale versione di make è richiesta?
AGGIORNAMENTO: questo è un Makefile GNU. Nell'invocazione di perl manca la parola shell
all'interno di $ ()
, oltre ad avere potenzialmente problemi di fuga con le doppie virgolette.
Soluzione
VER_DEC=$(shell printf "%d" 0x$(VER_HEX))
se stai parlando di Makefile
. Perché il tuo non sembra Makefile
per me, più come shell. (Penso che $ (shell)
sia l'estensione GNU, ma il più delle volte puoi tranquillamente sostituirlo con backtick).