2012-08-02 19 views
29

मैं इस पर नया हूं, बस पूछना चाहता हूं कि सी भाषा में मिनजीडब्लू कंपाइलर का उपयोग करके makefile.am को कैसे संकलित करना है। क्या मुझे अपनी सभी फाइलों को MinGW \ bin में सहेजना है? क्योंकि अभी मेरी फाइल अलग निर्देशिका में हैं।MinGW का उपयोग करके मेकफ़ाइल कैसे संकलित करें?

सहायता की सराहना करें।

+0

बेशक नहीं, आपको mingw \ bin में _anything_ नहीं डालना चाहिए। आपकी सटीक समस्या क्या है? (यानी बताएं कि आपके लिए क्या असफल रहा है।) – Mat

+1

यदि आपके पास Makefile.am है, तो मेरा सुझाव है कि आप [automake] (http://www.gnu.org/software/automake/) और [autoconf] के बारे में अधिक पढ़ें (http://www.gnu.org/software/autoconf/)। –

+0

ठीक है, मेरे पास सी में एक प्रोजेक्ट है कि मेरे पर्यवेक्षक मुझे संकलन करने के लिए कहते हैं। उस प्रोजेक्ट में makefile.in और makefile.in शामिल हैं। जिसके बारे में मुझे 0 ज्ञान है। शोध के बाद, मैंने मिनीजीडब्ल्यू कंपाइलर स्थापित करने का प्रबंधन किया है। मैंने फ़ाइल स्थान पर निर्देशित कमांड प्रॉम्प्ट में परिवर्तनीय वातावरण और निर्देशिका भी बदल दी है।अब, क्या कोई मुझे बता सकता है कि परियोजना को संकलित कैसे करें? वास्तव में इसकी सराहना करें। – AAA

उत्तर

0

कृपया automake और autoconf के बारे में जानें।

Makefile.am को स्वचालित रूप से मेकफ़ाइल उत्पन्न करने के लिए संसाधित किया जाता है जिसे आपके स्रोत बनाने के लिए संसाधित किया जाता है। http://www.mingw.org/wiki/FAQ से

http://www.gnu.org/software/automake/

+0

में नामित करने का हल किया है इसका मतलब है कि मैं केवल ऑटोमेक का उपयोग कर फ़ाइल संकलित कर सकता हूं? – AAA

20

अंश:

मेकअप और बीच क्या अंतर है mingw32-बनाते हैं?

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

तो, सी में देखो: \ MinGW \ बिन निर्देशिका और पहले सुनिश्चित करें कि क्या निष्पादन योग्य बनाने के लिए, आप इंस्टॉल किया गया है (make.exe या mingw32-make.exe)

MinGW उपयोग करने से पहले, आप सी जोड़ना चाहिए। : \ MinGW \ बिन; (सी में निष्पादनयोग्य पर निर्भर करता है: \ MinGW \ बिन) पथ वातावरण आपके निर्देशिका है, जहां आप makefile है और mingw32-make.exe makefile.in या बस make.exe makefile.in उपयोग करने का प्रयास करने के लिए दिए गए निर्देशों का उल्लेख का उपयोग कर चर http://www.mingw.org/wiki/Getting_Started/

फिर सीडी में करने के लिए।

यदि आप एक जीयूआई आधारित समाधान चाहते हैं, तो देवसीपी आईडीई स्थापित करें और फिर पुन: बनाएं।

+2

बस स्थापित mingw और मेरे पास न तो बिन फ़ोल्डर में है। – ecoe

6

आपको make.exe प्राप्त करने के लिए सक्रिय रूप से MSYS स्थापित करना चुनना है। यदि आपके पास MinGW ठीक से स्थापित किया गया था तो आपके पास हमेशा कम से कम (मूल) mingw32-make.exe होना चाहिए। और यदि आपने MSYS स्थापित किया है तो आपके पास make.exe होगा (शायद MSYS उपफोल्डर में)।

ध्यान दें कि कई परियोजनाओं को पहले मेकफ़ाइल बनाने की आवश्यकता होती है (उदा। कॉन्फ़िगर स्क्रिप्ट या automake .am फ़ाइल का उपयोग करके) और यह चरण है जिसके लिए एमएसवाईएस या साइगविन की आवश्यकता होती है। आपको आश्चर्य होता है कि उन्होंने मूल मेक को वितरित करने के लिए परेशान क्यों किया।

एक बार आपके पास मेकफ़ाइल हो जाने पर, यह स्पष्ट नहीं है कि मूल निष्पादन योग्य को MSYS बनाने (पिछड़े स्लैश बनाम आगे की स्लैश) की तुलना में एक अलग पथ विभाजक की आवश्यकता होती है। किसी भी स्वत: जेनरेट किए गए मेकफ़ाइल में यूनिक्स-स्टाइल पथ होने की संभावना है, मानते हैं कि मूल मेक उनको संभाल सकता है, संकलित आउटपुट समान होना चाहिए।