Преобразовать шестнадцатеричное значение в десятичное в скрипте make?
-
07-07-2019 - |
Вопрос
A сделать скрипт пытается установить переменную следующим образом:
VER_DEC=$( perl -e "print hex(\"$(VER_HEX)\");" )
где VER_HEX
случается, что он имеет значение 0a
.
Perl, похоже, думает, что VER_HEX равен нулю, подразумевая, что переменная не установлена (но это является, согласно отладочному эхо-сигналу в makefile).
Есть ли у make более простой способ преобразования баз?
Если да, то какая версия make требуется?
Обновить:Это файл GNU Makefile.При вызове perl отсутствует слово shell
внутри $( )
а также потенциально возможные проблемы с экранированием двойных кавычек.
Решение
VER_DEC=$(shell printf "%d" 0x$(VER_HEX))
если ты говоришь о Makefile
.Потому что ты не похож на Makefile
по-моему, больше похоже на шелл.(Я думаю $(shell )
является расширением GNU, но в большинстве случаев вы можете безопасно заменить его обратными метками).