2009-03-26 14 views
8

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

के बाद मेरे सवालों

  1. संकलक हैं: मैं जी ++ उपयोग करने की योजना है और सुना है यह क्रॉस प्लेटफॉर्म है। क्या यह एक अच्छा विकल्प है?
  2. फ़ाइलें बनाएं: मैंने कोड :: ब्लॉक संपादक देखा है और यह फ़ाइलों को उड़ाने पर बनाता है और आपको मैन्युअल रूप से एक लिखना नहीं है। क्या यह सबसे अच्छा अभ्यास है या क्या मुझे फाइल बनाने की ज़रूरत है?
  3. क्रॉस-प्लेटफार्म अनुप्रयोगों को विकसित करते समय देखभाल करने के लिए अन्य सेटिंग्स क्या हैं?

कोई विचार?

संपादित

जवाब के लिए धन्यवाद। एक और प्रश्न।

क्या आप हाथ से मेकफ़ाइल बनाते हैं? या कोई उपकरण है जो इसे उत्पन्न कर सकता है?

+0

क्रॉस-प्लेटफ़ॉर्म कैसे? (जैसा कि, कौन सा मंच)। जीयूआई, या गैर-जीयूआई? –

+0

एक हिस्सा एक साझा पुस्तकालय होगा। और निश्चित रूप से, जीयूआई वहां होगा। –

उत्तर

7

आपके प्रोजेक्ट को पकड़ने के लिए सबसे महत्वपूर्ण बात पोर्टेबिलिटी है। & सभी के लिए चलाने के लिए यह आसान होना चाहिए।

जीसीसी (जी ++) वास्तव में पसंद का संकलक है। यह ओपनसोर्स दुनिया से आता है और इसलिए इसे व्यापक रूप से अपनाया जाता है।

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

कई अलग-अलग क्रॉस-प्लेटफ़ॉर्म बिल्ड सिस्टम मौजूद हैं, जो आईडीई-अज्ञेयवादी हैं। उनमें से कुछ मेकफ़ाइल बनाते हैं, अन्य लोग बनाने का उपयोग नहीं करते हैं बल्कि स्वयं का निर्माण करते हैं।

  • सबसे व्यापक रूप से अपनाया गया निर्माण प्रणाली Autotools है। हालांकि, गधे में सीखना, अव्यवस्थित और समग्र दर्द करना मुश्किल है।
  • कई अन्य विकल्पों में से, मैं Waf की अनुशंसा करता हूं। यह कई बड़ी खुला स्रोत पहले से ही परियोजनाओं से साबित होता है, XMMS2 एक अच्छा उदाहरण है (जबकि नहीं एक बहुत ही लोकप्रिय परियोजना है, यह प्लग-इन का एक बहुत के साथ एक बड़े निर्माण है और ओएस एक्स और Windows सहित प्लेटफार्मों की एक बहुत बनाता है)। जबकि वेफ को व्यापक रूप से अपनाया नहीं जाता है, यह स्रोत के साथ भेज दिया जाना चाहिए और सेट अप करना आसान है। आपके लिए मेरी सिफारिश

संपादित करें:, मैं भी (ऑनलाइन पढ़ने के लिए उपलब्ध) कार्ल फोगल द्वारा this book की सिफारिश अपने मुक्त स्रोत परियोजना के साथ आरंभ करने के लिए। मज़े करो!

+0

उत्तर के लिए धन्यवाद। –

1

कंपाइलर: मैं g ++ का उपयोग करने की योजना बना रहा हूं और सुना है कि यह क्रॉस प्लेटफार्म है। क्या यह एक अच्छा विकल्प है?

हाँ, लेकिन कौन सा संस्करण? क्या आपके पास उपयोग किए जाने वाले संस्करण के लिए ज्ञात समस्याएं हैं?

फाइलें बनाएं: मैंने कोड :: ब्लॉक संपादक को देखा है और यह फ़ाइलों को उड़ाने पर बनाता है और आपको मैन्युअल रूप से लिखना नहीं है। क्या यह सबसे अच्छा अभ्यास है या क्या मुझे फाइल बनाने की ज़रूरत है?

एक शास्त्रीय पसंद। प्रोजेक्ट बढ़ने पर आपको शायद उन्हें ट्विक करने की आवश्यकता होगी।

क्रॉस-प्लेटफ़ॉर्म अनुप्रयोगों को विकसित करते समय देखभाल करने के लिए अन्य सेटिंग्स क्या हैं?

एक जी ++/मेकफ़ाइल पोर्ट हमेशा के लिए प्रमुख प्लेटफ़ॉर्म के लिए उपलब्ध है। इसलिए, एक बार जब आप यह सुनिश्चित कर लें कि आप किसी प्लेटफ़ॉर्म विशिष्ट API का उपयोग नहीं कर रहे हैं या निर्माण करना चाहते हैं तो आपको जाना अच्छा होगा।

निम्नलिखित के बारे में क्या?

  • तृतीय पक्ष पुस्तकालय? सुनिश्चित करें कि आप एक मंच विशिष्ट के लिए नहीं गिरते हैं।
  • लाइसेंसिंग मुद्दों (अपने कोड और अन्य)
  • एससीएम
+0

मेरे पास G ++ का नवीनतम संस्करण है। उबंटू में पैकेज मैनेजर का उपयोग करके स्थापित किया गया। –

+0

मुझे वास्तव में जानने की आवश्यकता नहीं है, लेकिन आपको चाहिए :) बस सुनिश्चित करें कि आप अपने द्वारा उपयोग किए जा रहे टूल के संस्करणों को नोट करते हैं। आने वाले दिनों में बहुत दुख बचा सकता है। – dirkgently

2

विशिष्ट प्लेटफार्मों के आधार पर, Qt उत्तर रख सकते हैं। विशेष रूप से नए लाइसेंस के साथ।

+0

क्यूटी और क्यूमेक। मैं इसे wxwidgets पर भी अनुशंसा करता हूं, जिसे कोडब्लॉक्स द्वारा प्रचारित किया जाता है। – ypnos

2
  • अब कई प्लेटफार्मों पर निर्माण शुरू करें: यह शुरुआती मुद्दों को सामने लाता है।
  • यदि आप केवल लिनक्स और मैक ओएस एक्स की परवाह करते हैं, तो g ++ ठीक होना चाहिए। विभिन्न आईडीई और बिल्ड सिस्टम उपलब्ध हैं। आप कॉन्फ़िगरेशन समर्थन में सहायता के लिए autotools का उपयोग करने पर विचार करना चाहेंगे।
  • यदि आप विंडोज़ को लक्षित करना चाहते हैं, तो यह थोड़ा और जटिल हो जाता है। आप साइगविन और/या मिंगव का उपयोग कर सकते हैं, लेकिन कभी-कभी जटिल हो सकता है। विभिन्न परियोजनाएं क्रॉस-प्लेटफॉर्म बिल्ड और कॉन्फ़िगरेशन सिस्टम जैसे CMake का उपयोग करने के लिए कई मुद्दों का ख्याल रखने के लिए उपयोग करती हैं।
3

GNU सी ++ संकलक पार मंच काम के लिए एक अपेक्षाकृत अच्छा विकल्प है सिवाय इसके कि (3.4) मूल रूप से समर्थित है। विंडोज़ को 4.x-series पोर्ट करने के लिए काम चल रहा है, लेकिन अब तक यह प्राइम टाइम के लिए तैयार नहीं है।

फोकस के बजाय क्या संकलक का उपयोग करने पर, मैं बजाय जो भाषा का उपयोग करने पर ध्यान केंद्रित होगा। एएनएसआई मानक सी ++ लिखना आपके कोड को क्रॉसप्लेटफार्म बनाने की दिशा में एक लंबा सफर तय करेगा। जहां तक ​​संभव हो, Qt जैसे अच्छे टूलकिट के पीछे प्लेटफ़ॉर्म-विशिष्ट व्यवहार छुपाएं।

क्रॉस-प्लेटफ़ॉर्म निर्माण वातावरण के लिए, यह आपके द्वारा उपयोग की जाने वाली टूलकिट पर निर्भर हो सकता है। क्यूटी में क्यूमेक है, जो अपेक्षाकृत अच्छा है। सीएमके एक और आकर्षक विकल्प है। मैं ऑटोटूल से बचूंगा, क्योंकि यूनिक्स के बाहर इसकी बहुत खराब पोर्टेबिलिटी है - Win32 पर Autotools का उपयोग करके अक्सर शापित की पीड़ा होती है।

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

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