Question

Un script make tente de définir une variable comme suit:

VER_DEC=$( perl -e "print hex(\"$(VER_HEX)\");" )

VER_HEX a la valeur 0a .

Perl semble penser que VER_HEX est égal à zéro, ce qui implique que la variable n'est pas définie (mais elle est , selon un écho de débogage dans le fichier makefile).

Est-ce que make a un moyen plus simple de convertir des bases?

Si oui, quelle version de make est requise?

UPDATE: Ceci est un Makefile GNU. Le mot shell à l'intérieur de $ () n'apparaît pas dans l'appel de perl, ainsi que des problèmes éventuels liés aux guillemets doubles.

Était-ce utile?

La solution

VER_DEC=$(shell printf "%d" 0x$(VER_HEX))

si vous parlez de Makefile . Parce que vous ne ressemblez pas à Makefile pour moi, mais plutôt à un shell. (Je pense que $ (shell) est une extension GNU, mais la plupart du temps, vous pouvez le remplacer en toute sécurité par des backticks).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top