জিএনইউ-তে সমস্ত বিধি ফাইল বানায়?


18

আমি কি আমার ব্যাখ্যায় ভুল করছি যে আমাকে সমস্ত নিয়ম তৈরি করার আগে মূলত প্রথমে রাখা উচিত:

.PHONY: all of my rules

all:
    echo "Executing all ..."

of:
    echo "Executing of ..."

my:
    echo "Executing my ..."

rules:
    echo "Executing rules ..."

এমন কোনও মামলা আছে যেখানে আপনি এই 'সূত্র' অনুসরণ করতে চান না?

http://www.gnu.org/software/make/manual/make.html#Phony-Targets

উত্তর:


24

ক্লার্ক গ্রাব্বের মেকফাইল স্টাইল গাইড প্রস্তাবিত:

  • সমস্ত মজাদার টার্গেটগুলি .FONY এর পূর্বশর্ত তৈরি করে তাদের ঘোষণা করা উচিত।
  • সমস্ত ঘোড়া লক্ষ্যকে এক জায়গায় স্থির করে না করে লক্ষ্য ঘোষণার ঠিক পূর্বের আগে প্রতিটি ফনি লক্ষ্যকে যুক্ত করুন P
  • কোনও ফাইল টার্গেট .FONY এর পূর্বশর্ত নয়।
  • ফনি লক্ষ্যগুলি ফাইল টার্গেটের পূর্বশর্ত হওয়া উচিত নয়।

আপনার উদাহরণের জন্য, এর অর্থ হবে:

.PHONY: all
all:
    echo "Executing all ..."

.PHONY: of
of:
    echo "Executing of ..."

.PHONY: my
my:
    echo "Executing my ..."

.PHONY: rules
rules:
    echo "Executing rules ..."

একাধিক PHONYলক্ষ্য অনুমোদিত; এই স্ট্যাক ওভারফ্লো প্রশ্নটিও দেখুন: "একটি জিনু মেকফাইলে একাধিক .PHONY টার্গেট থাকা কি সম্ভব?"

এছাড়াও, আপনার প্রশ্নে এটি সরাসরি উল্লেখ না করা অবস্থায়, PHONYআপনার প্রকল্পে একটি প্রকৃত ইনপুট বা মধ্যবর্তী ফাইলগুলির একই নামের সাথে লক্ষ্য না রাখার যত্ন নেওয়া উচিত । উদাহরণস্বরূপ, যদি আপনার প্রকল্পটি অনুমানের সাথে একটি উত্স কোড ফাইল নামে থাকে rules(কোনও প্রত্যয় ছাড়াই) তবে একটি স্ট্রিংটির একটি PHONYলক্ষ্য অন্তর্ভুক্তি প্রত্যাশিত makeআচরণকে ভেঙে দিতে পারে ।


1
স্টাইল গাইড উপর দুর্দান্ত শেয়ার। ধন্যবাদ.
তারাবিতে

2

আমি মনে করি এটি অনুসরণ করা একটি ভাল অনুশীলন তবে এটিকে টুকরো টুকরো করা এবং সম্পূর্ণ নিয়মের রেসিপিগুলি পরেও টুকরো টুকরো করা আমার গেমকে (3.81):

উদাহরণ:

#Makefile
all:
   @echo hello world
.PHONY: all

সিএমডি:

$ touch all
$ make all    #this would be a no-op if all weren't a phoney target
  hello world 
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.