मैं लिनक्स में इन बातों को देखते हैं, लेकिन क्या है यह ?:क्या makefiles कर रहे हैं - स्थापित कर
./configure
make
make install
आदि आदि
मैं लिनक्स में इन बातों को देखते हैं, लेकिन क्या है यह ?:क्या makefiles कर रहे हैं - स्थापित कर
./configure
make
make install
आदि आदि
make
निर्माण प्रणाली का हिस्सा सामान्यतः यूनिक्स प्रकार प्रणालियों में इस्तेमाल किया है - binutils।
यह ऐसी फाइलें बनाने में लग रहा है जो कॉन्फ़िगरेशन जानकारी रखते हैं और लक्ष्य बनाते हैं।
विशेष रूप से -
make
कॉल - यह एक स्क्रिप्ट है कि निर्माणinstall
बिल्ड लक्ष्य के साथ कॉल करें। आम तौर पर ऐप इंस्टॉल करता है।डाउनवोट क्यों? –
@ पॉल टॉमलिन - आप किसके बारे में बात कर रहे हैं? – Oded
ओह, मुझे लगता है कि यह उलट दिया गया था। जब मैं उस सवाल से पूछा तो आप -1 थे। –
configure
जांचता है कि क्या आपके पास सॉफ़्टवेयर बनाने के लिए सभी आवश्यक शर्तें/निर्भरताएं हैं।
make
वास्तविक संकलन करता है।
make install
सही स्थान पर सॉफ़्टवेयर स्थापित करता है।
संकलित निष्पादन योग्य या पुस्तकालय में स्रोत नियंत्रण बनाने के लिए आवश्यक निर्देशों और आदेशों के सेट (कभी-कभी बहुत ही जटिल) सेट को चलाने का ख्याल रखना।
मेकअप एक उपयोगिता है कि स्वचालित रूप से स्रोत कोड
से निष्पादन योग्य कार्यक्रमों और पुस्तकालयों बनाता है यह मूल रूप से एक का निर्माण प्रणाली है।
./configure
चेक करता है कि क्या आपके पास सभी आवश्यक निर्भरताएं हैं और मेकफ़ाइल बनाता है।
make
मेकफ़ाइल के नियमों का उपयोग कर सॉफ़्टवेयर को संकलित करता है।
make install
सॉफ़्टवेयर को सिस्टम सिस्टम में सही स्थान पर ले जाता है।
यह "मूल रूप से" एक निर्माण प्रणाली नहीं है। यह _is_ एक निर्माण प्रणाली है। –
./configure
एक ऐसा प्रोग्राम है जो आपके सिस्टम कॉन्फ़िगरेशन को देखता है और आपके प्रोग्राम के लिए सिस्टम निर्भरताओं में से कुछ बनाता है। make
एक ऐसा प्रोग्राम है जो आपके Makefile
(जिसे शायद configure
द्वारा बनाया गया था) देखता है और आपके प्रोग्राम को बनाने के लिए वहां नियमों का उपयोग करता है। Makefile
में कई "लक्ष्य" हो सकते हैं जो अलग-अलग चीजों को करने के लिए नियम सेट होते हैं - डिफ़ॉल्ट आमतौर पर संकलन और आपके प्रोग्राम को लिंक करने के लिए होता है। जब आप कोई तर्क के साथ make
कहते हैं, तो यह डिफ़ॉल्ट लक्ष्य चलाता है। जब आप make install
कहते हैं तो आप install
लक्ष्य चला रहे हैं, जो आमतौर पर उनके अंतिम स्थानों में डिफ़ॉल्ट लक्ष्य द्वारा निर्मित बाइनरी या पुस्तकालय स्थापित करता है। clean
एक और आम मेकफ़ाइल लक्ष्य है जो सभी जेनरेट की गई फ़ाइलों जैसे मध्यवर्ती ऑब्जेक्ट फ़ाइलों को हटा देता है।
वहाँ भी make clean
है यहाँ एक अच्छा संदर्भ है: http://makepp.sourceforge.net/1.19/makepp_tutorial.html
संदर्भित दस्तावेज़ में कहीं भी "/ साफ" उल्लेख नहीं किया गया है। साथ ही, क्या आप कह रहे हैं "/ clean" एक कमांड या एक लक्ष्य है? सचमुच लिया, यह न तो है। तकनीकी उत्तर देने पर आपको सटीक होना चाहिए। –
मैं अधिक सटीक नहीं होने के लिए क्षमा चाहता हूं। यहां एक साधारण मेक फ़ाइल का एक उदाहरण दिया गया है जिसे मैंने एक स्कूल प्रोजेक्ट के लिए सबमिट किया था जिसे मुझे करना था (साथ ही साथ कुछ कोड, जिसे अनदेखा किया जा सकता है) ... आप "मेकफ़ाइल" फ़ाइल में उदाहरण पा सकते हैं। जैसा कि मैंने मेकफ़ाइल लिखा है, फिर आप "/ clean" का उपयोग कर सकते हैं जो "/ make" द्वारा उत्पन्न ऑब्जेक्ट फ़ाइल को हटा देगा। इसे अधिक जटिल संकलन के लिए अद्यतन करने की आवश्यकता होगी जिसमें एप्लिकेशन के साथ ऑब्जेक्ट कोड को जोड़ना शामिल है, लेकिन यह उस बारे में मूलभूत अवधारणा को दर्शाता है जिसके बारे में मैं बात कर रहा था। http://www.download.bigsistechnologies.com/csc22001p1_burke.tar.gz –
आपके '/ make' और'/clean' पर प्रमुख स्लेश के साथ क्या है ?? – reinierpost
'कॉन्फ़िगर' एक खोल स्क्रिप्ट कि कई यूनिक्स प्रणालियों (लिनक्स, सोलारिस, आदि) भर में पोर्टेबल है। './configure' कुछ चीजें करता है: निर्माण वातावरण का परीक्षण करें, पोर्टेबिलिटी समस्याओं को ठीक करें, अन्य वैकल्पिक सॉफ़्टवेयर की जांच करें, यह जांचें कि आप सॉफ्टवेयर पैकेज को इंस्टॉल करना चाहते हैं, आदि। आप यह जान सकते हैं कि किस प्रकार के विकल्प कॉन्फ़िगर किए जा सकते हैं './configure --help' द्वारा। बस './configure' का आविष्कार केवल पैकेज को कॉन्फ़िगर करेगा जो इसे डिफ़ॉल्ट रूप से मानता है। './configure' चलाने से मुख्य आउटपुट फ़ाइल आमतौर पर 'मेकफ़ाइल' नामक एक फ़ाइल होती है जो सॉफ़्टवेयर पैकेज के लिए संयुक्त बिल्ड/इंस्टॉल/अनइंस्टॉल निर्देश है।
'मेक' डिफ़ॉल्ट लक्ष्य बनाने के लिए 'मेकफ़ाइल' का उपयोग करता है जो आम तौर पर उन चीज़ों का पूरा संग्रह होता है जिन्हें बनाने की आवश्यकता होती है।
'मेक इंस्टॉल' सॉफ़्टवेयर इंस्टॉल करने वाले 'इंस्टॉल' लक्ष्य को बनाने के लिए 'मेकफ़ाइल' का उपयोग करता है।
मुझे यह भयानक आलेख मिला (सॉफ़्टवेयर स्थापना कॉन्फ़िगर करना, बनाना, इंस्टॉल करना) जो कि कॉन्फ़िगर, कॉन्फ़िगर और स्थापित करने के तरीके पर विस्तार से बताता है। बहुत उथले और न तो बहुत गहरे, लिनक्स प्रतिष्ठानों के साथ एक आरामदायक बनाने के लिए पर्याप्त है। http://www.codecoffee.com/tipsforlinux/articles/27.html
Anotther सवाल यह है कि डेवलपर शिकायत क्यों नहीं करता है, मुझे लगता है कि बहुत सारे सॉफ़्टवेयर मुझे स्वयं को शिकायत करते हैं? – Snoob
लिनक्स कई अलग-अलग प्लेटफार्मों (विभिन्न सीपीयू, आर्किटेक्चर, हार्डवेयर, ओएस/कर्नेल संस्करण इत्यादि) पर चलता है - यह मौजूद असंख्य संभावित कॉन्फ़िगरेशन के लिए पूर्व-संकलित बाइनरी प्रदान करने के लिए अव्यवहारिक होगा। –
बहुत से पूर्व संकलित बाइनरी हैं। वे आमतौर पर .deb या .rpm के साथ समाप्त होते हैं। यदि आप उबंटू जैसे वितरण का उपयोग करते हैं तो आप भंडार से पूर्व-संकलित सॉफ़्टवेयर प्राप्त कर सकते हैं। –