मैं मेकफ़ाइल का उपयोग करने की कोशिश कर रहा हूं, मेरी समस्या यह है कि मेरे पास src
निर्देशिका और Makefile
के साथ एक निर्देशिका है। मैं tmp
निर्देशिका का भी उपयोग करता हूं जो मुझे बनाना है। इसमें ऑब्जेक्ट फ़ाइलें हैं। और प्रदर्शन के लिए, मैं डीबगिंग करते समय इन्हें हटाने की कोशिश नहीं करता हूं। यदि मैं इसे बनाने के लिए tmp के लिए नियम बनाता हूं, तो यह हमेशा सभी सी फ़ाइलों का पुनर्निर्माण करता है। तो यह कैसे करें?यदि आवश्यक हो तो निर्देशिका कैसे बनाएं?
उत्तर
कई तरीके हैं। यह इस बात पर निर्भर करता है कि आप किस make
का उपयोग कर रहे हैं और आप किस ऑपरेटिंग सिस्टम का उपयोग कर रहे हैं।
एक चीज जो आपको कभी नहीं करना चाहिए एक निर्देशिका को एक सामान्य शर्त के रूप में उपयोग करना है। निर्देशिकाओं पर संशोधित समय को अद्यतन करने के लिए फाइल सिस्टम का उपयोग करने वाले नियम make
के साथ अच्छी तरह से काम नहीं करते हैं।
सरल make
के लिए, आप निर्देशिका शासन में पूर्व बनाने के संकलन प्रदर्शन करने के लिए कर सकते हैं:
obj/foo.o: foo.c
@ mdkir -p obj
$(CC) $(CPPFLAGS) $(CFLAGS) -c -o [email protected] $<
आप जीएनयू है, तो आपके पास दो विकल्प हैं। सबसे सरल एक बस के लिए मजबूर करने, इस तरह की एक पंक्ति जोड़कर निर्देशिका जब makefile से पहले कुछ और होता है में पढ़ा जाता है बनाया जाना है:
_dummy := $(shell mkdir -p obj)
The, आसान, तेज, और विश्वसनीय है। इसका एकमात्र नकारात्मक पक्ष यह है कि निर्देशिका हमेशा बनाई जाएगी, भले ही इसकी आवश्यकता न हो। फिर भी मैं आमतौर पर ऐसा करता हूं।
obj/foo.o: foo.c | obj
$(CC) $(CPPFLAGS) $(CFLAGS) -c -o [email protected] $<
obj:
mkdir -p [email protected]
यह, लेकिन बलों obj
लक्ष्य obj/foo.o
लक्ष्य से पहले निर्मित किया जाना:
सबसे आधुनिक तरीका है, अगर आप एक नया पर्याप्त जीएनयू बनाने के लिए है, क्रम-केवल आवश्यक शर्तें उपयोग करने के लिए है पर टाइमस्टैम्प को यह निर्धारित करते समय अनदेखा किया जाता है कि obj/foo.o
पुराना है या नहीं।
क्या जीएनयू एक्सटेंशन के बिना इसे करने का कोई तरीका है? (प्रश्न 'मेकफ़ाइल' टैग किया गया है, न कि 'जीएनयूमेकफाइल')। – jww
नहीं, POSIX-compliant makefiles लिखते समय निर्देशिका को किसी शर्त के रूप में उपयोग करने का कोई तरीका नहीं है (जैसे यह वांछित व्यवहार करता है)। एकमात्र चीज जो आप कर सकते हैं वह एक स्पष्ट 'mkdir -p' में जोड़ने के लिए अपने सभी नियमों को फिर से लिखना है, जो कि मौजूद निर्देशिका का उपयोग करने का प्रयास करने से पहले, और पूर्वापेक्षाएँ का उपयोग नहीं करते हैं या निर्देशिका बनाने के लिए नियम बनाते हैं। – MadScientist
- 1. Emacs - डायर कॉपी/मूव फाइलें - यदि आवश्यक हो तो निर्देशिका बनाएं
- 2. यदि आवश्यक हो तो WPF टूलटिप दिखाएं
- 3. किसी स्थान पर फ़ाइल बनाने के लिए जावा में विधि, यदि आवश्यक हो तो निर्देशिका बनाना?
- 4. रूबी में रिकर्सिवली निर्देशिका कैसे बनाएं?
- 5. यदि आवश्यक हो तो आईओएस ऐप्स निम्न फोंट डाउनलोड कर सकते हैं
- 6. यदि फ़ोल्डर मौजूद नहीं है तो फ़ोल्डर कैसे बनाएं?
- 7. निर्देशिका आईओएस कैसे बनाएं?
- 8. लुआ में निर्देशिका कैसे बनाएं?
- 9. पायथन: फ़ाइल बनाएं लेकिन यदि नाम मौजूद है तो
- 10. वेबलॉगिक कस्टम नियोक्ता (यदि वास्तव में आवश्यक हो)
- 11. यदि संभव हो तो पोस्टग्रेएसक्यूएल कैसे एम्बेड कर सकता है?
- 12. आरटीएल का पुन: संकलन - यदि संभव हो तो फिर कैसे?
- 13. संख्याओं के लिए अधिकतम printf फ़ील्ड चौड़ाई निर्दिष्ट करना (यदि आवश्यक हो तो छंटनी)?
- 14. निम्नलिखित परिवर्तन, यदि कोई हो, तो निम्नलिखित पर्ल eval बुलेट प्रूफ बनाने के लिए आवश्यक हैं?
- 15. स्वरूप डबल मूल्यों पाँच कुल अंक की एक अधिकतम उपयोग करते हुए, यदि आवश्यक हो तो
- 16. बड़े लॉग जेनकिन्स फ़ाइल से बचें (और यदि आवश्यक हो तो निर्माण बंद करें)
- 17. फ़ोल्डर/निर्देशिका कैसे बनाएं
- 18. प्लंकर में निर्देशिका कैसे बनाएं?
- 19. यदि java.sql.Connection # प्रतिबद्ध() अपवाद फेंकता है तो रोलबैक आवश्यक है?
- 20. यदि आवश्यक फ्लैग मौजूद नहीं हैं तो संकलित विफल
- 21. निर्देशिका बनाएँ। यदि मौजूद है, तो निर्देशिका और उसकी सामग्री हटाएं और जावा
- 22. यदि कोई अस्तित्व में नहीं है तो इंटरमीडिएट फ़ोल्डर्स बनाएं
- 23. विक्स में निर्देशिका कैसे बनाएं?
- 24. यदि कोई निर्देशिका नहीं है तो निर्देशिका बनाने का कोई सुरक्षित तरीका है?
- 25. स्कीमा बिल्डर: यदि तालिका मौजूद नहीं है तो तालिका बनाएं
- 26. निर्देशिका विभाजक निरंतर आवश्यक है?
- 27. यदि प्रदर्शन धीमा हो तो प्रदर्शन परीक्षण कैसे विफल हो सकता है?
- 28. FILE_LOG_PATTERN को ओवरराइड करना (यदि संभव हो तो प्रति एनवी)
- 29. स्क्रॉल बार को छिपाने के लिए कैसे छिपाना है, यदि आवश्यक नहीं है तो हटाएं
- 30. सी # में आवश्यक संपत्ति कैसे बनाएं?
संभावित फ़ाइल [फ़ाइल बनाने का उपयोग कर निर्देशिका बनाएं] का संभावित डुप्लिकेट (http://stackoverflow.com/questions/1950926/create-directories-using-make-file) – SimplyKnownAsG