2009-06-18 10 views
8

में दो प्रमुख कैसे बनाएं, हमारे पास एक प्रोग्राम है जो एक execvp कमांड के साथ निष्पादित, अलग से चलाता है। इसलिए इसे एक मुख्य विधि की आवश्यकता है, लेकिन मेरा मानना ​​है कि एक प्रबंधित मेक के साथ ग्रहण करने में कोई समस्या है। क्या हमें इस कोड को एक अलग परियोजना में अलग रखना है, या क्या इसे एक ही ग्रहण परियोजना में शामिल करने का कोई तरीका है?ग्रहण सी ++ प्रोजेक्ट

उत्तर

1

यदि मेकफ़ाइल का आह्वान किया जा रहा है तो 2 मुख्य() विधियों को एक ही निष्पादन योग्य में संकलित नहीं करता है, इससे कोई समस्या नहीं होगी। मुझे नहीं पता कि ग्रहण परियोजनाओं को कैसे प्रबंधित किया जाता है - यदि यह वीएस की तरह है, जहां "प्रोजेक्ट" का मतलब एक निष्पादन योग्य या पुस्तकालय है, और "समाधान" "परियोजनाओं" का एक समूह है, तो ऐसा लगता है कि आपको एक से अधिक की आवश्यकता होगी परियोजना। यदि, ओटीओएच, एक "प्रोजेक्ट" में अलग-अलग "सबप्रोजेक्ट्स" हो सकते हैं जहां "सबप्रोजेक्ट" निष्पादन योग्य या लाइब्रेरी है, तो आप इसे आसानी से संभालने में सक्षम होना चाहिए।

3

इसे उसी प्रोजेक्ट में रखें और प्रीप्रोसेसर का उपयोग करें जो कि आप वर्तमान परियोजना में किस प्रकार के मुख्य को शामिल करना चाहते हैं, इस पर निर्भर करते हुए अलग-अलग परिभाषित करते हैं। यहां मुख्य फाइल एक ही फाइल में हैं, लेकिन वे निश्चित रूप से विभिन्न फाइलों में रह सकते हैं।

#if defined(MAIN_ONE) 
int main() 
{ 
    // Do stuff 
} 
#elif defined(MAIN_TWO) 
int main() 
{ 
    // Do some other stuff 
} 
#endif 
1

मुझे ग्रहण निर्माण प्रणाली का उपयोग करके दो मुख्य निर्माण करने के किसी भी आसान तरीके से अवगत नहीं है। आपको सबसे छोटा बदलाव करने की आवश्यकता है मेकफ़ाइल पर जाना और मेकफ़ाइल लक्ष्य का निर्माण करना।

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

7

प्रत्येक निष्पादन योग्य के लिए एक प्रोजेक्ट बनाएं जिसमें मुख्य() फ़ंक्शन है, और पूरी तरह से सॉफ़्टवेयर का प्रतिनिधित्व करने के लिए एक अतिरिक्त प्रोजेक्ट बनाएं (एक प्रकार का "कंटेनर" प्रोजेक्ट)। ग्रहण आपको अन्य परियोजनाओं की निर्भरताओं के रूप में परियोजनाओं को निर्दिष्ट करने की अनुमति देता है, और इस मामले में आप अन्य परियोजनाओं को "संदर्भित परियोजनाओं" के रूप में सूचीबद्ध करने के लिए कंटेनर प्रोजेक्ट सेट अप करना चाहेंगे।

ऐसा करने के लिए, कंटेनर प्रोजेक्ट बनाएं, फिर बाएं हाथ के कॉलम (प्रोजेक्ट एक्सप्लोरर) में प्रोजेक्ट पर राइट-क्लिक करें और "गुण" पर क्लिक करें। एक डायलॉग बॉक्स दिखाई देगा। बाएं हाथ की सूची में "प्रोजेक्ट रेफरेंस" आइटम का चयन करें और आप वर्तमान में काम कर रहे सभी परियोजनाओं की एक सूची देखेंगे। अपने व्यक्तिगत निष्पादन योग्य के लिए प्रोजेक्ट के बगल में स्थित बॉक्स चेक करें, फिर ठीक क्लिक करें। अब, जब आप कंटेनर प्रोजेक्ट पर निर्माण करते हैं, तो एक्लिप्स को स्वचालित रूप से इन निर्भर परियोजनाओं पर भी निर्माण करना चाहिए।

इस तरह से उप-परियोजनाओं का उपयोग करते समय, मैंने (व्यक्तिगत रूप से) एक कामकाजी सेट बनाने के लिए उपयोगी पाया है जिसमें कंटेनर प्रोजेक्ट और सभी उप-परियोजनाएं शामिल हैं (यह पूरे सॉफ्टवेयर प्रोजेक्ट को आसान बना सकती है)।

+0

कंटेनर प्रोजेक्ट को शिकायत से कैसे रोकें कि इसमें कोई 'सब' या 'साफ' लक्ष्य नहीं है? दूसरा, आप ऑर्डर कैसे निर्दिष्ट करते हैं जिसमें उप-परियोजनाएं बनाई जाएंगी? (फिलहाल मेरे प्रोजेक्ट्स के सेट में एक प्रोजेक्ट शामिल है जो सभी अन्य परियोजनाओं पर लाइब्रेरी बनाता है, लेकिन लाइब्रेरी पहले नहीं बनाई गई है (नामकरण की अनियमितता) जिसका मतलब है कि मुझे दो बार कंटेनर प्रोजेक्ट बनाने की आवश्यकता है) – Urhixidur

+0

@Urhixidur - आपको पुस्तकालय को उन प्रोग्रामों की निर्भरता के रूप में चिह्नित करना होगा जो इसका उपयोग करते हैं, लेकिन मुझे यह याद नहीं है कि ग्रहण यूआई में इसे कैसे किया जाए। यदि आप अपनी खुद की मेकफ़ाइल लिख रहे हैं, तो यह काफी आसान है। पहले प्रश्न के लिए, केवल लक्ष्य को परिभाषित करें (भले ही वे वास्तव में कुछ भी नहीं करते हैं)। – bta

0

यह सी ++ भाषा में बनाया गया है। अपना परिणाम प्राप्त करने के लिए आपको इसे संशोधित करना होगा। 2 चीजें एक बार पर करने के लिए कुछ है जो आप चाहते हैं।

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