Преобразовать шестнадцатеричное значение в десятичное в скрипте make?

StackOverflow https://stackoverflow.com/questions/1428646

  •  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, но в большинстве случаев вы можете безопасно заменить его обратными метками).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top