मेरी कार्य निर्देशिका में, मुझे 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