बिना makefile उत्पन्न शामिल मेरा मैं अपने आप makefiles पैदा कर रहा हूँ और सहित उन्हें, इस तरह की एक परियोजना के लिए:चेतावनी संदेश
$ make
Makefile:13: depend.mk: No such file or directory
Creating depend.mk
SUCCESS is 1
:
all:
@echo 'SUCCESS is $(SUCCESS)'
clean:
rm depend.mk
depend.mk:
@echo 'Creating [email protected]'
@echo 'SUCCESS := 1' > [email protected]
.PHONY: all clean
include depend.mk
यह काम करता है, लेकिन को शामिल लाइन एक चेतावनी संदेश उत्पन्न करता है
मैं उस पहली चेतावनी रेखा को चुप करना चाहता हूं जो निर्भर करता है कि निर्भर.एमके मौजूद नहीं है। मुझे पता है कि यह अस्तित्व में नहीं है क्योंकि मेरे पास इसे उत्पन्न करने के लिए लिखा गया नियम है, इसलिए चेतावनी अनावश्यक है (बेशक इसके लिए कोई नियम नहीं है)। मैं उस त्रुटि को अनदेखा नहीं करना चाहता जहां शामिल फ़ाइल मौजूद नहीं है और इसके लिए कोई नियम नहीं है, इसलिए include
को -
के साथ त्रुटि को अनदेखा करने के लिए उपसर्ग करना मेरे लिए काम नहीं करेगा। मुझे some_cmd 2>/dev/null
जैसे पाइपिंग स्टेडर से/dev/null के बैश के सम्मेलन के समान कुछ चाहिए, लेकिन बनाने में शामिल हैं।
उपरोक्त नमूना इस मामले का एक बहुत ही सरल उदाहरण है। मेरे वास्तविक प्रोजेक्ट में बहुत से स्वचालित रूप से जेनरेट किए गए मेकफ़ाइल (क्लैंग की स्वचालित निर्भरता पीढ़ी के माध्यम से) शामिल हैं, जिसका अर्थ है make
का ताजा रन इन चेतावनी संदेशों के साथ मेरी स्क्रीन को बाढ़ देगा।
क्या ऐसा कुछ भी संभव है, या क्या मुझे परेशान चेतावनी संदेशों से निपटना होगा?
क्लैंग स्वचालित निर्भरता फ़ाइलों के लिए उनके लिए विशिष्ट नियम हैं? वे संकलन के दुष्प्रभाव के रूप में उत्पन्न नहीं हो रहे हैं? –
@EtanReisner वे पैटर्न नियम हैं जैसे '$ (BUILDROOT) /%। डी: $ (CURTOP) /%। सी' जहां नुस्खा' $ (सीपीपी) $ (सीपीपीएफएलजीएस) -एमएम-एमजी -एमटी $ @ -एमटी है $ (बेसनाम $ @)। ओ-एमएफ $ @ $ <', इसलिए कुछ भी बनाया जाने से पहले उन्हें उत्पन्न किया जा सकता है। – C0deH4cker
क्या आपको कुछ भी बनाया जाने से पहले उन्हें उत्पन्न करने की आवश्यकता है? क्या यह सिर्फ समय बर्बाद नहीं कर रहा है? यदि सी फ़ाइल को संकलित करने की आवश्यकता है, और क्लैंग ऑब्जेक्ट फ़ाइल और '.d' फ़ाइल दोनों को एक ही समय में थूक सकता है तो दो बार में ऐसा करने से परेशान क्यों हो? –