2010-10-12 21 views
7

मैं लिनक्स में इन बातों को देखते हैं, लेकिन क्या है यह ?:क्या makefiles कर रहे हैं - स्थापित कर

./configure 
make 
make install 

आदि आदि

+1

Anotther सवाल यह है कि डेवलपर शिकायत क्यों नहीं करता है, मुझे लगता है कि बहुत सारे सॉफ़्टवेयर मुझे स्वयं को शिकायत करते हैं? – Snoob

+1

लिनक्स कई अलग-अलग प्लेटफार्मों (विभिन्न सीपीयू, आर्किटेक्चर, हार्डवेयर, ओएस/कर्नेल संस्करण इत्यादि) पर चलता है - यह मौजूद असंख्य संभावित कॉन्फ़िगरेशन के लिए पूर्व-संकलित बाइनरी प्रदान करने के लिए अव्यवहारिक होगा। –

+0

बहुत से पूर्व संकलित बाइनरी हैं। वे आमतौर पर .deb या .rpm के साथ समाप्त होते हैं। यदि आप उबंटू जैसे वितरण का उपयोग करते हैं तो आप भंडार से पूर्व-संकलित सॉफ़्टवेयर प्राप्त कर सकते हैं। –

उत्तर

8

make निर्माण प्रणाली का हिस्सा सामान्यतः यूनिक्स प्रकार प्रणालियों में इस्तेमाल किया है - binutils

यह ऐसी फाइलें बनाने में लग रहा है जो कॉन्फ़िगरेशन जानकारी रखते हैं और लक्ष्य बनाते हैं।

विशेष रूप से -

  • कॉन्फ़िगर - डिफ़ॉल्ट निर्माण लक्ष्य के साथ make कॉल - यह एक स्क्रिप्ट है कि निर्माण
  • मेकअप के लिए वातावरण सेट करता है। आम तौर पर ऐप बनाता है।
  • इंस्टॉल करें - पर install बिल्ड लक्ष्य के साथ कॉल करें। आम तौर पर ऐप इंस्टॉल करता है।
+0

डाउनवोट क्यों? –

+0

@ पॉल टॉमलिन - आप किसके बारे में बात कर रहे हैं? – Oded

+0

ओह, मुझे लगता है कि यह उलट दिया गया था। जब मैं उस सवाल से पूछा तो आप -1 थे। –

5

configure जांचता है कि क्या आपके पास सॉफ़्टवेयर बनाने के लिए सभी आवश्यक शर्तें/निर्भरताएं हैं।

make वास्तविक संकलन करता है।

make install सही स्थान पर सॉफ़्टवेयर स्थापित करता है।

3

संकलित निष्पादन योग्य या पुस्तकालय में स्रोत नियंत्रण बनाने के लिए आवश्यक निर्देशों और आदेशों के सेट (कभी-कभी बहुत ही जटिल) सेट को चलाने का ख्याल रखना।

make (software)

मेकअप एक उपयोगिता है कि स्वचालित रूप से स्रोत कोड

4

से निष्पादन योग्य कार्यक्रमों और पुस्तकालयों बनाता है यह मूल रूप से एक का निर्माण प्रणाली है।

./configure चेक करता है कि क्या आपके पास सभी आवश्यक निर्भरताएं हैं और मेकफ़ाइल बनाता है।
make मेकफ़ाइल के नियमों का उपयोग कर सॉफ़्टवेयर को संकलित करता है।
make install सॉफ़्टवेयर को सिस्टम सिस्टम में सही स्थान पर ले जाता है।

+2

यह "मूल रूप से" एक निर्माण प्रणाली नहीं है। यह _is_ एक निर्माण प्रणाली है। –

11

./configure एक ऐसा प्रोग्राम है जो आपके सिस्टम कॉन्फ़िगरेशन को देखता है और आपके प्रोग्राम के लिए सिस्टम निर्भरताओं में से कुछ बनाता है। make एक ऐसा प्रोग्राम है जो आपके Makefile (जिसे शायद configure द्वारा बनाया गया था) देखता है और आपके प्रोग्राम को बनाने के लिए वहां नियमों का उपयोग करता है। Makefile में कई "लक्ष्य" हो सकते हैं जो अलग-अलग चीजों को करने के लिए नियम सेट होते हैं - डिफ़ॉल्ट आमतौर पर संकलन और आपके प्रोग्राम को लिंक करने के लिए होता है। जब आप कोई तर्क के साथ make कहते हैं, तो यह डिफ़ॉल्ट लक्ष्य चलाता है। जब आप make install कहते हैं तो आप install लक्ष्य चला रहे हैं, जो आमतौर पर उनके अंतिम स्थानों में डिफ़ॉल्ट लक्ष्य द्वारा निर्मित बाइनरी या पुस्तकालय स्थापित करता है। clean एक और आम मेकफ़ाइल लक्ष्य है जो सभी जेनरेट की गई फ़ाइलों जैसे मध्यवर्ती ऑब्जेक्ट फ़ाइलों को हटा देता है।

0

वहाँ भी make clean

है यहाँ एक अच्छा संदर्भ है: http://makepp.sourceforge.net/1.19/makepp_tutorial.html

+0

संदर्भित दस्तावेज़ में कहीं भी "/ साफ" उल्लेख नहीं किया गया है। साथ ही, क्या आप कह रहे हैं "/ clean" एक कमांड या एक लक्ष्य है? सचमुच लिया, यह न तो है। तकनीकी उत्तर देने पर आपको सटीक होना चाहिए। –

+0

मैं अधिक सटीक नहीं होने के लिए क्षमा चाहता हूं। यहां एक साधारण मेक फ़ाइल का एक उदाहरण दिया गया है जिसे मैंने एक स्कूल प्रोजेक्ट के लिए सबमिट किया था जिसे मुझे करना था (साथ ही साथ कुछ कोड, जिसे अनदेखा किया जा सकता है) ... आप "मेकफ़ाइल" फ़ाइल में उदाहरण पा सकते हैं। जैसा कि मैंने मेकफ़ाइल लिखा है, फिर आप "/ clean" का उपयोग कर सकते हैं जो "/ make" द्वारा उत्पन्न ऑब्जेक्ट फ़ाइल को हटा देगा। इसे अधिक जटिल संकलन के लिए अद्यतन करने की आवश्यकता होगी जिसमें एप्लिकेशन के साथ ऑब्जेक्ट कोड को जोड़ना शामिल है, लेकिन यह उस बारे में मूलभूत अवधारणा को दर्शाता है जिसके बारे में मैं बात कर रहा था। http://www.download.bigsistechnologies.com/csc22001p1_burke.tar.gz –

+0

आपके '/ make' और'/clean' पर प्रमुख स्लेश के साथ क्या है ?? – reinierpost

1

'कॉन्फ़िगर' एक खोल स्क्रिप्ट कि कई यूनिक्स प्रणालियों (लिनक्स, सोलारिस, आदि) भर में पोर्टेबल है। './configure' कुछ चीजें करता है: निर्माण वातावरण का परीक्षण करें, पोर्टेबिलिटी समस्याओं को ठीक करें, अन्य वैकल्पिक सॉफ़्टवेयर की जांच करें, यह जांचें कि आप सॉफ्टवेयर पैकेज को इंस्टॉल करना चाहते हैं, आदि। आप यह जान सकते हैं कि किस प्रकार के विकल्प कॉन्फ़िगर किए जा सकते हैं './configure --help' द्वारा। बस './configure' का आविष्कार केवल पैकेज को कॉन्फ़िगर करेगा जो इसे डिफ़ॉल्ट रूप से मानता है। './configure' चलाने से मुख्य आउटपुट फ़ाइल आमतौर पर 'मेकफ़ाइल' नामक एक फ़ाइल होती है जो सॉफ़्टवेयर पैकेज के लिए संयुक्त बिल्ड/इंस्टॉल/अनइंस्टॉल निर्देश है।

'मेक' डिफ़ॉल्ट लक्ष्य बनाने के लिए 'मेकफ़ाइल' का उपयोग करता है जो आम तौर पर उन चीज़ों का पूरा संग्रह होता है जिन्हें बनाने की आवश्यकता होती है।

'मेक इंस्टॉल' सॉफ़्टवेयर इंस्टॉल करने वाले 'इंस्टॉल' लक्ष्य को बनाने के लिए 'मेकफ़ाइल' का उपयोग करता है।

1

मुझे यह भयानक आलेख मिला (सॉफ़्टवेयर स्थापना कॉन्फ़िगर करना, बनाना, इंस्टॉल करना) जो कि कॉन्फ़िगर, कॉन्फ़िगर और स्थापित करने के तरीके पर विस्तार से बताता है। बहुत उथले और न तो बहुत गहरे, लिनक्स प्रतिष्ठानों के साथ एक आरामदायक बनाने के लिए पर्याप्त है। http://www.codecoffee.com/tipsforlinux/articles/27.html

संबंधित मुद्दे