2014-05-12 5 views
5

मैं एक विशेष libary का उपयोग करता हूं जिसमें इसे संकलित करने के कुछ तरीके हैं (प्लेटफ़ॉर्म- और लक्ष्य-विशिष्ट कोड) और, नतीजतन, कभी-कभी पूरी तरह खाली हो जाता है। संग्रह में सी फाइलें; कोड बस # ifdef'd दूर था। यह बिल्कुल समझा जाता है और बिल्कुल एक बग नहीं: मैं इसे इस तरह से चाहता हूं। और लिनक्स पर, यह वास्तव में कोई समस्या नहीं है। यदि यह एक समस्या थी, तो लिंकर इसे पकड़ लेगा।मैक ओएस में रैनलिब/एआर मुझे "कोई प्रतीक नहीं है" चेतावनी देता है

फिर भी मैक ओएस पर रैनलिब/आर इन फ़ाइलों के लिए "कोई प्रतीक नहीं है" चेतावनी को दबाने के लिए आश्वस्त नहीं किया जा सकता है।

अब, मैं एक इंजीनियर हूं और मैं अपनी संकलन प्रक्रिया को बिल्कुल चेतावनी-कम चलाने के लिए चाहता हूं। यह महत्वपूर्ण कोड है जिसका मूल्यांकन किया जा रहा है; अगर मुझे चेतावनी है, तो लोग मुझे मजाकिया देखेंगे। क्या शायद कुछ ऐसा है जिसे मैंने अनदेखा किया है? कुछ कमांड लाइन विकल्प?

धन्यवाद,

के.जे.

+0

ऐसे मामले में आप 'grep -v' no का उपयोग कर सकते हैं प्रतीकों को 'चुप करने के व्यावहारिक तरीके के रूप में' (क्योंकि आप जानते हैं कि आप क्या कर रहे हैं)। – deltheil

+0

मुझे इसके लिए एक समाधान भी पसंद आएगा। इसके अलावा 'grep -v' * एक स्वीकार्य कामकाज नहीं है। यह मानता है कि मैं निर्माण चला रहा हूं। अगर कोई और रेपो क्लोन करता है तो उन्हें इमारत के दौरान चेतावनियों को दूर करने की आवश्यकता नहीं है। – acm

उत्तर

1

दो संभावनाओं जो मन में आ रहे हैं (1) हमेशा पुस्तकालय में कुछ प्रतीक शब्दों में कहें, तो भी यह एक शून्य लंबाई वस्तु है। (2) मेकफ़ाइल पर्यावरण में रैपरलिब/एआर में रैपर प्रदान करते हैं जो चेतावनियों को फ़िल्टर करते हैं। अन्य उपयोगकर्ता/स्वचालित निर्माण को स्पष्ट रूप से grep -v का उपयोग करने की आवश्यकता नहीं है, यह आपके द्वारा प्रदान किए जाने वाले आदेश और विकल्प में हो सकता है, उदाहरण के लिए:

AR = $(PROJECT_HOME)/bin/project-ar 
RANLIB = $(PROJECT_HOME)/bin/project-ranlib 
संबंधित मुद्दे