फिक्स: कोई लक्ष्य निर्दिष्ट नहीं और कोई मेकफाइल नहीं मिला।



समस्याओं को खत्म करने के लिए हमारे साधन का प्रयास करें

चाहे आप उबंटू, डेबियन या रेड हैट के साथ काम कर रहे हों, आपको एक त्रुटि दिखाई दे सकती है जो पढ़ती है: *** कोई लक्ष्य निर्दिष्ट नहीं किया गया है और कोई मेकफाइल नहीं मिला है। रूक जा। चूंकि यह जीएनयू मेक से संबंधित एक सामान्य मुद्दा है, आप इसे अनगिनत यूनिक्स कार्यान्वयन पर देख सकते हैं। इसका अर्थ है कि आपके वर्तमान कार्य निर्देशिका में मेकफिल या मेकफाइल नामक फ़ाइल नहीं है। सौभाग्य से, यह तय करने के लिए एक आसान त्रुटि है।



विधि 1: वर्तमान निर्देशिका में एक मेकफाइल ढूँढना

आप दौड़ने की कोशिश करना चाह सकते हैं बनाना वर्तमान निर्देशिका में एक बार और यह देखने के लिए कमांड करें कि क्या वही त्रुटि आप पर फेंकी गई है। यह विशेष रूप से महत्वपूर्ण है यदि आपने एक नई टर्मिनल विंडो खोली है और पहले से ही सही निर्देशिका का पता लगाने की कोशिश की है या यदि आपने पिछली बार जब आपने GNU मेक को चलाने की कोशिश की थी तब से cd कमांड का उपयोग किया था।



यह मानते हुए कि यह करता है, चलाने की कोशिश करें रास या आप को आपकी वर्तमान निर्देशिका में कौन सी फाइलें हैं, यह देखने के लिए कमांड दें। आप निर्देशिका ट्री के दाहिने हिस्से में नहीं हो सकते हैं। यदि आप देखते हैं कि आप अपने रूट / डायरेक्टरी या अपने होम ~ डायरेक्टरी से संबंधित डाइरेक्टरी देखते हैं, तो आप मेक कमांड चलाने के लिए cd कमांड को अपने आप को सही जगह पर चलाना चाहते हैं।

एक मौका है कि आप अपने आप को उससे भी आगे पा सकते हैं जहाँ आप होने की उम्मीद कर रहे हैं। हमारे उदाहरण में, हमने / var / क्रैश निर्देशिका से बनाने की कोशिश की और पाया कि यह बिल्कुल भी काम नहीं कर रहा है। यह यहां से चलने की उम्मीद नहीं की जा सकती है, क्योंकि इस विशेष स्थान की एकमात्र फाइलें असंबंधित क्रैश रिपोर्ट से हैं।

संभावना से अधिक, आप अपनी निर्देशिका को अपनी निर्देशिका से चलाना चाहते हैं जो आपके होम निर्देशिका के अंदर कहीं स्थित है। उदाहरण के लिए, यदि आप स्रोत से GNU नैनो के नवीनतम संस्करण का निर्माण कर रहे हैं, तो संभवतः आपके पास एक निर्देशिका है जो ~ / nano-2.9.6 पर स्थित है जिसे आप cd कर सकते हैं और फिर दोबारा बना सकते हैं। आप दौड़ने की कोशिश करना चाह सकते हैं रास इससे पहले कि आप यह सुनिश्चित करने का प्रयास करें कि आपके द्वारा बनाने के लिए निर्देशिका के भीतर स्थित एक मेकफाइल है।

ध्यान रखें कि आपको पहले स्थापना को कॉन्फ़िगर करना होगा। कॉन्फ़िगर कमांड GNU कंपाइलर को पनपने के लिए सही वातावरण बनाता है। यदि आपको सही प्रोजेक्ट डायरेक्टरी में भी मेफाइल नहीं मिल रहा है, तो चलाएं कॉन्फ़िगर जब आप अभी भी इसके अंदर हैं, उसके बाद बनाना आदेश। यदि यह सही तरीके से संकलित है, तो आप अपने प्रोजेक्ट को स्थापित कर सकते हैं सुडोल बनाते हैं , लेकिन याद रखें कि आप रूट के रूप में कुछ भी नहीं बनाना चाहते हैं इसलिए आप कभी भी sudo मेक या कुछ और इंस्टालेशन के बाहर नहीं चलाना चाहते हैं।

विधि 2: एक कस्टम मेकफाइल निर्दिष्ट करना

यह मानते हुए कि समस्या ठीक हो गई है, आपको और कुछ करने की आवश्यकता नहीं है। हालाँकि, पिछली विधि ने आपकी समस्या को ठीक नहीं किया है, इस पर विचार करने के लिए दो विशेष उपयोग के मामले हैं। इन दोनों में एक प्रोजेक्ट के लिए अपना स्वयं का मेकफाइल लिखना शामिल है जिसे आप हाथ से कॉन्फ़िगर कर रहे हैं।

आप एक कस्टम मेकफाइल निर्दिष्ट कर सकते हैं जिसे -f विकल्प का उपयोग करके शाब्दिक मेकफाइल के अलावा कुछ और कहा जाता है। उदाहरण के लिए, यदि आपके पास makefile.bak नामक एक बैकअप मेकफाइल था, तो आप इसे चलाकर निर्दिष्ट कर सकते हैं make -f makefile.bak कमांड लाइन से। आप Makefile.bak को किसी भी फ़ाइल नाम के साथ बदल सकते हैं और यदि आप कंपाइलर चल रहे हैं तो आप कस्टम या आउटडेटेड मेकफाइल में त्रुटियों को अनदेखा करना चाहते हैं तो -i विकल्प शामिल कर सकते हैं। यह आमतौर पर अनुशंसित नहीं है, क्योंकि आप शायद अपने मेकफाइल को संपादित करना चाहते हैं यदि इसके साथ कुछ भी गलत है।

अन्य बहुत निकटता से संबंधित उपयोग के मामले में ऐसी स्थिति शामिल होती है जहां केस संवेदनशीलता एक मुद्दा है। व्यवसाय करने के यूनिक्स रास्ते में निम्नलिखित सभी अलग-अलग फाइलें हैं:

  • makefile
  • makefile
  • makefile
  • MakeFile
  • makefile

कस्टम कॉन्फ़िगर किए गए प्रोग्राम विषम पूंजीकरण के साथ एक मेकफाइल को पहचानने में सक्षम नहीं हो सकते हैं। यदि आप इसे उस कोडिंग प्रोजेक्ट के लिए हस्तलिखित करते हैं, जिस पर आप काम कर रहे हैं, तो आप शायद इसे फिर से नाम बदलना चाहते हैं, हालांकि आप यह सुनिश्चित करने के लिए -i विकल्प का उपयोग कर सकते हैं कि GNU मेक इसे खोजने में सक्षम है। याद रखें कि यदि आपने सब कुछ सही ढंग से लिखा है, तो आप अभी भी चला सकते हैं। अपने स्वयं के प्रोजेक्ट से कॉन्फ़िगर करें ताकि सही वातावरण उत्पन्न करने और इस समस्या से बचने के लिए मजबूर किया जा सके।

3 मिनट पढ़ा