سؤال

A جعل السيناريو هو محاولة تعيين متغير على النحو التالي:

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

حيث VER_HEX يحدث أن يكون لها قيمة 0a.

بيرل يبدو أن أعتقد أن VER_HEX هو صفر ، مما يعني أن المتغير ليس مجموعة (ولكن هو, وفقا التصحيح صدى في makefile).

لا تجعل يكون أبسط طريقة لتحويل القواعد ؟

إذا كان الأمر كذلك ، ما هو إصدار جعل هو المطلوب ؟

تحديث:هذا هو جنو Makefile.الاحتجاج بيرل مفقود كلمة shell داخل $( ) وكذلك يحتمل وجود قضايا الهروب مع انقر نقرا مزدوجا الاقتباس.

هل كانت مفيدة؟

المحلول

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

إذا كنت تتحدث عن Makefile.لأن لا تبدو مثل Makefile لي أكثر مثل قذيفة.(أعتقد $(shell ) غنو التمديد ، ولكن معظم الوقت يمكنك استبدال بأمان مع backticks).

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top