मेरी कार्य निर्देशिका में, मुझे foo.c
, बार नामक कुछ फाइलें हैं I C
, baz.c
, प्रत्येक फ़ाइल कुछ विधियों को परिभाषित करती है और मुझे a.c
और बी.c
नामक दो फाइलें हैं। प्रत्येक foo.c
, bar.c
और baz.c
से विधियों का उपयोग करके एक एकल प्रोग्राम है। मैं a
और b
से नीचे मेकफाइल संकलित करता हूं
लक्ष्य: = अब ओबीजेएस: = foo.o bar.o baz.o सब : $ (लक्ष्य) एक: Ao $ (OBJS) जीसीसी $ ^ -ओ $ @ ख: बो $ (OBJS) जीसीसी $ ^ -ओ $ @% ओ:% ग जीसीसी -c $ & LT; -ओ $ @
हालांकि, तो क्या मैं इस तरह से एक नियम में किसी भी मदद के लिए धन्यवाद। नियम एक
और नियम ख समान है और अगर मेरे पास एक नया प्रोग्राम है जिसका नाम सी , मुझे एक और नियम लिखना होगा
a
और b
बना सकता हूं:
$ (TARGETS) : $ (ओबीजेएस) $ (xo) gcc -c $ ^ -o $ @
आप ऑब्जेक्ट्स को संकलित करने के लिए पहले से ही पैटर्न नियमों का उपयोग कर रहे हैं, क्यों नहीं उन्हें निष्पादन योग्य बनाने के लिए भी उपयोग करें?
%:%। $ (ओबीजेएस) जीसीसी $ ^ -o $ @ कोड>
या यदि आप मैच-कुछ पैटर्न नियमों से बचने के लिए पसंद करते हैं तो आप स्थिर पैटर्न नियमों का उपयोग कर सकते हैं:
$ (TARGETS):%:%। ओ $ (ओबीजेएस) जीसीसी $ ^ -ओ $ @ कोड>
(द्वितीयक विस्तार वास्तव में इसके लिए अतिरेक है ...)
Comments
Post a Comment