মেকফাইল থেকে শেল কমান্ডে ইকো কীভাবে ব্যবহার করবেন?


3

আমার একটি জিএনইউ মেকফিল আছে । এটি লিনাক্স, সোলারিস এবং ওএস এক্স-তে সূক্ষ্মভাবে চলে However

/bin/sh: -c: line 0: syntax error near unexpected token `('
/bin/sh: -c: line 0: `echo 2.0.4(0.287/5/3) | egrep -i -c "fc22.i686"'

কোন লাইন 0 নেই; এবং ফেডোরা 22 এর জন্য পরীক্ষাটি আসলে লাইন 73 তে ঘটে:

IS_FEDORA22_i686 = $(shell echo $(RELEASE) | $(EGREP) -i -c "fc22.i686")

সাইগউইন এবং মিনজিডব্লিউয়ের সাথে কী চলছে? আরও গুরুত্বপূর্ণ বিষয়, আমি কীভাবে এটি ঠিক করতে পারি?


আমি জানি এটি একটি প্রসারিতের মতো শোনাচ্ছে, সুতরাং এখানে একটি স্ক্রিন ক্যাপচার রয়েছে। উপরের বামটি MinGW। কেন্দ্রটি সাইগউইন -32। নীচের ডানদিকে সাইগউইন -৪।।

এখানে চিত্র বর্ণনা লিখুন

উত্তর:


3

সমস্যাটি হ'ল শেলটি $RELEASEকোনও উদ্ধৃতিগুলির বাইরে বন্ধনীগুলি দেখছে , তাই তাদের ব্যাখ্যা করার চেষ্টা করছে। দুই কিছু করার চেষ্টা করতে: রেফারেন্স প্রায় ডাবল কোট করা $(RELEASE), এবং ব্যবহার :=প্রতি এই । উদাহরণ স্বরূপ:

SHELL:=/bin/bash.  #at the top of the makefile
IS_FEDORA22_i686 := $(shell echo "$(RELEASE)" | $(EGREP) -i -c "fc22.i686")

সম্পাদনা করুন: স্যুইচগুলি সহ একচেটিয়া আউটপুট যেমন -mসাধারণত কোনও শেল মেটাচার্যাক্টর থাকে না। একই সমস্যাটি যে কোনও ভেরিয়েবলের ক্ষেত্রে ঘটতে পারে। এ কারণেই এটি SHELLআপনার মেকফিলটিতে সেট করা দরকারী - যদি ব্যবহারকারী চলমান থাকে তবে cshআপনার সাথে ভিন্ন সমস্যা হবে bash


আপনার যদি একটি টেস্ট মেশিন থাকে তবে git clone https://github.com/weidai11/cryptopp.gitএকটি সম্পর্কিত প্রশ্ন: অন্যান্য ভেরিয়েবলগুলি কেন সমস্যা তৈরি করছে SYSTEMনা?
jww

ধন্যবাদ আবার cxw। আমি পরের প্রশ্নটিকে স্ট্যাক ওভারফ্লোতে স্থানান্তরিত করেছি: পরিবর্তনশীল যা ওভাররাইড এবং "কেবল প্রসারিত" করতে দেয়?
jw
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.