2008-11-24 19 views
58

मैंने मेकफ़ाइल के बारे में बहुत कुछ सुना और वे संकलन प्रक्रिया को सरल कैसे बनाते हैं। मैं वीएस -2008 का उपयोग कर रहा हूँ। क्या कोई कृपया कुछ ऑनलाइन संदर्भ या किताबों का सुझाव दे सकता है जहां मैं उनसे निपटने के तरीके के बारे में अधिक जानकारी प्राप्त कर सकता हूं?विजुअल स्टूडियो में मेकफ़ाइल का उपयोग कैसे करें?

उत्तर

27

एक यूनिक्स लड़का ने शायद आपको बताया था। :)

आप वीएस में मेकफ़ाइल का उपयोग कर सकते हैं, लेकिन जब आप इसे एमएसवीसी के आईडीई में सभी अंतर्निहित कार्यक्षमता को छोड़ देते हैं। मेकफ़ाइल मूल रूप से बिल्डर के reinterpret_cast हैं। आईएमओ सबसे सरल बात सिर्फ समाधान का उपयोग करने के लिए है।

+10

.vcproj फ़ाइलों में बहुत अधिक ब्लोट होता है, और जब तक आप उन्हें उत्पन्न करने के लिए कुछ और उपयोग नहीं कर रहे हैं, तब तक अनावश्यक रूप से तेजी से बढ़ते हैं (स्कोन, सेमेक)। – Tom

+51

प्लस माइक्रोसॉफ्ट आंतरिक रूप से मेकफ़ाइल का उपयोग करता है। कोई भी समाधान स्रोत फ़ाइल में विंडोज स्रोत कोड लोड करने का सपना देखेगा। –

+43

यह वास्तव में प्रश्न का उत्तर नहीं देता है। – weberc2

4

एक मेकफ़ाइल के वीएस समकक्ष एक "समाधान" (अति-सरलीकृत, मुझे पता है) है।

+0

मैंने इसे ऊपर उठाया क्योंकि यह मुझे हंसता है, और यह काफी सही है। – GrahamJ

1

यदि आप वास्तविक कमांड लाइन मेकफ़ाइल के बारे में पूछ रहे हैं तो आप मेकफ़ाइल निर्यात कर सकते हैं, या आप कमांड लाइन से समाधान फ़ाइल पर MSBuild को कॉल कर सकते हैं। मेकफ़ाइल के साथ आप वास्तव में क्या करना चाहते हैं?

आप अधिक जानकारी के लिए एमएसबिल्ड के लिए एसओ पर एक खोज कर सकते हैं।

2

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

अपने समाधान के निर्माण के अलावा यह सामान्य है कि एक निर्माण स्क्रिप्ट में यूनिट परीक्षण चलाने, कोड कवरेज और जटिलता रिपोर्ट करने के लिए कार्य शामिल है।

8

मैं वास्तव में के रूप में निम्नलिखित devenv लागू एक विशेष परियोजना का निर्माण करने से पहले किसी भी निर्भरता की जरूरत बनाने के लिए एक makefile का उपयोग करें:

debug: coratools_debug 
    devenv coralib.vcproj /build debug 

coratools_debug: nothing 
    cd ../coratools 
    nmake debug 
    cd $(MAKEDIR) 

तुम भी एक ही बात करने के लिए MSBuild उपकरण का उपयोग कर सकते हैं:

debug: coratools_debug 
    msbuild coralib.vcxproj /p:Configuration=debug 

coratools_debug: nothing 
    cd ../coratools 
    nmake debug 
    cd $(MAKEDIR) 

मेरी राय में, यह अत्यधिक जटिल दृश्य स्टूडियो परियोजना प्रबंधन योजना को समझने की कोशिश करने से कहीं अधिक आसान है।

47

माइक्रोसॉफ्ट प्रोग्राम रखरखाव उपयोगिता (NMAKE.EXE) एक ऐसा उपकरण है जो विवरण फ़ाइल में निहित आदेशों के आधार पर प्रोजेक्ट बनाता है।

NMAKE Reference

10

प्रश्नों का उत्तर प्राप्त करने के लिए ...

मैं VS2008 उपयोग कर रहा हूँ। क्या कोई कृपया कुछ ऑनलाइन संदर्भ या किताबें सुझा सकता है जहां मैं उनसे निपटने के तरीके के बारे में अधिक जानकारी प्राप्त कर सकता हूं?

यह लिंक आपको विजुअल स्टूडियो के साथ मैपिंग करके मेकफ़ाइल में एक अच्छा परिचय देगा।

Introduction to Makefiles for Visual Studio developers

मैं makefiles और कैसे वे संकलन प्रक्रिया को सरल बनाने के बारे में बहुत सुना है।

मेकफ़ाइल शक्तिशाली और लचीले हैं लेकिन प्रक्रिया को सरल बनाने का सबसे अच्छा समाधान नहीं हो सकता है। सीएमके पर विचार करें जो निर्माण प्रक्रिया को अच्छी तरह से तैयार करता है जिसे इस लिंक में समझाया गया है।

CMake for Visual Studio Developers

0
एक पूर्ण समाधान के साथ संक्षेप में

...

2 विकल्प हैं:

  1. उपयोग Nmake डेवलपर कमांड प्रॉम्प्ट से दृश्य स्टूडियो के लिए

शॉर्टकट आपके स्टार्ट मेनू में मौजूद है। यह देखने के लिए मेकफ़ाइल के अंदर देखो कि कोई 'सेटअप' क्रियाएं हैं या नहीं। क्रियाएं एक कोलन से पहले पहले शब्द के रूप में दिखाई देती हैं। आम तौर पर, सभी अच्छी मेकफ़ाइलों में "सभी" क्रिया होती है ताकि आप टाइप कर सकें: सभी

  1. प्रत्येक बाइनरी के लिए एक समाधान और प्रोजेक्ट फ़ाइलें बनाएं।

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

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

उम्मीद है कि इससे मदद मिलती है।

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