মেকফিল থেকে পালাচ্ছে


88

আমি এটি একটি মেকফেলে করার চেষ্টা করছি এবং এটি মারাত্মকভাবে ব্যর্থ হয়:

M_ARCH := $(shell g++ -dumpmachine | awk '{split($1,a,"-");print a[1]}')

তুমি কি জানো কেন? আমার ধারণা, পালানোর সাথে এর সম্পর্ক আছে তবে কী এবং কোথায়?


4
কিভাবে এটি ব্যর্থ হয়? এটি কোন ত্রুটি বার্তা উত্পন্ন করে? আপনি এটি কী করবেন বলে আশা করেন?

উত্তর:


164

এটি ডলার সাইন, মেকফিলগুলিতে আপনাকে $$একক ডলারের সাইন পেতে টাইপ করতে হবে:

M_ARCH := $(shell g++ -dumpmachine | awk '{split($$1,a,"-");print a[1]}')

133
হ্যাঁ, মেক করা মোট অর্থের অপচয় $one একটি পেতে আপনাকে দুটি রাখতে হবে।
পি শেভেড

8
@ পাভেলশেভড আমি কখনও মেকের জন্য অর্থ প্রদান করি নি। :)
ট্রেভর হিকি

এই উত্তরটি অনুসন্ধানের অংশ হিসাবে সন্ধান করার জন্য, মন্তব্যগুলির শুরু হিসাবে নেওয়া '#' অক্ষরগুলির সাথেও সমস্যা রয়েছে। এগুলির জন্য, আপনার ব্যাকস্ল্যাশ নিয়ে পালানো উচিত: "\ #"।
জিম মন্টে

16

আপনি যখন এটিতে নামেন তখন মেকিং বেশ মজাদার। এখানে একই কাজ করে এমন একটি নন-অ্যাজক সংস্করণ:

space := $() #

M_ARCH := $(firstword $(subst -,$(space),$(shell g++ -dumpmachine)))

all:
    $(info $(M_ARCH))
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.