2009-05-14 11 views
8

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

क्या मैक ओएस एक्स का उपयोग कर सी ++ में काम करने के लिए व्यवहार्य है? जाहिर है वे उद्देश्य-सी की दिशा में तैयार हैं लेकिन सी ++ के लिए उतना ही समर्थन है। इन भाषाओं में क्रॉस-प्लेटफॉर्म विकास के बारे में क्या? मैं कुछ बढ़ावा देने और कुछ प्रकार की यूआई लाइब्रेरी का उपयोग करता हूं।

किसी को भी कई प्लेटफार्मों के लिए विकसित करने के लिए अभी तक आवेदन पत्र एक वी एम की आवश्यकता के बिना मूल रूप से चलाने की अनुमति किसी भी अनुभव है?

संपादित करें: बहुत सारे उत्तर हैं जिन्हें मैं अभी सही के रूप में चिह्नित करना चाहता हूं। ऐसा लगता है कि क्यूटी सी ++ में जाने और विकसित करने का तरीका है। संभावना है कि यह * निक्स, ओएस एक्स और विंडोज के लिए होगा ताकि यह हमारे लिए व्यक्तिगत रूप से सबसे अच्छा विकल्प होगा। यदि मैं उद्देश्य-सी लिखने से बच सकता हूं तो टीम सी ++ पर चिपक जाती है तो सभी बेहतर। अगर मुझे उद्देश्य-सी में जीयूआई लिखना है और मिश्रण और मैच करना है तो यह भी बहुत परेशान नहीं है।

उत्तर

10

You could look at Qt। मैंने इसे विंडोज, लिनक्स और मैक ओएसएक्स परियोजनाओं पर सफलतापूर्वक उपयोग किया है।

+0

यह शायद अभी तक का सबसे सरल पोस्ट है बनाता है सबसे अधिक उपयुक्त :) – Kezzer

1

यह C++ में काम करने के लिए मैक ओएस एक्स का उपयोग कर व्यवहार्य है? जाहिर है वे उद्देश्य-सी की दिशा में तैयार हैं लेकिन सी ++ के लिए उतना ही समर्थन है।

हाँ, वहाँ है।

आप काफी कुछ भी आप चाहते हैं सी के साथ ++ ओएस एक्स में --anything आप उदाहरण के लिए लिनक्स पर C++ के साथ कर सकता है कि, कर सकते हैं। जीसीसी के सी ++ कंपाइलर, सी ++ पुस्तकालयों, और सभी के लिए समर्थन है। एक्सकोड सी ++ के साथ काम करने के लिए समर्थन प्रदान करता है।

आप उद्देश्य-सी ++ के साथ उद्देश्य-सी के साथ सी ++ मिश्रण भी कर सकते हैं (नोट, हालांकि, यह जीयूआई काम के लिए पोर्टेबल नहीं है)।

क्या इन भाषाओं में पार मंच विकास के बारे में? मैं कुछ बढ़ावा देने और कुछ प्रकार की यूआई लाइब्रेरी का उपयोग करता हूं।

मेरा मानना ​​है कि आपकी सर्वश्रेष्ठ शर्त QT है।

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

आप नवीनतम क्यूटी के साथ मुक्त ओपन सोर्स और मालिकाना (बंद स्रोत) ऐप्स दोनों विकसित कर सकते हैं, और लाइब्रेरी को हाल ही में नोकिया, एक विशाल बहुराष्ट्रीय द्वारा खरीदा गया था, इसलिए यह जल्द ही कभी नहीं जा रहा है।

पुस्तकालय के अलावा, क्यूटी भी एक आईडीई और एक विजुअल फॉर्म डिजाइनर (सभी मुफ्त में) के साथ आता है।

सी ++ के लिए अन्य क्रॉस-प्लेटफ़ॉर्म जीयूआई लाइब्रेरी ओएस एक्स (wxWidgets, gtkmm, et al) के लिए भी मौजूद है।

+0

मैक पर wxWidget ओएस एक्स बटन और क्षेत्रों के साथ सरल जीयूआई करने के लिए बहुत अच्छी तरह से प्रबंधन करता है, लेकिन एक पूर्ण विशेषताओं आवेदन wxWidgets के साथ बहुत गैर Maccish महसूस होगा। फ़ॉन्ट संवाद एक उदाहरण है। – dreamlax

11

मैं एक ऐसी सॉफ्टवेयर कंपनी के लिए काम करता हूं जो सी ++, एमएफसी और ऑब्जेक्टिव-सी का उपयोग कर मैक ओएस एक्स और विंडोज के लिए सॉफ्टवेयर तैयार करता है।

हां, यह निश्चित रूप से संभव है।

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

मैक के बारे में अच्छी बात यह है कि आप सी ++ और उद्देश्य-सी को संकलित कर सकते हैं। आप उद्देश्य-सी ++ भी कर सकते हैं जहां सी ++ और उद्देश्य-सी एक ही संकलन इकाई में संकलित किए जाते हैं। दुर्भाग्यवश आप इसे सी # के साथ नहीं कर सकते हैं (प्रबंधित सी ++ नामक कुछ है जो एक अलग जानवर है)।

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

संपादित कर सकते हैं 14, 2009, 9:44 ईएसटी: क्यूटी अब की अनुमति देता है सच देखो और देशी मंच के लग रहा है, यह एक अच्छा विकल्प हो सकता है। मैंने नवीनतम पेशकश को नहीं देखा है ताकि आप स्वयं को डिजाइन करने से पहले उस ढांचे को देखना चाहें। यह निर्णय आवेदन के परिणामों की जांच करने के बाद किया जाना चाहिए और क्यूटी की आवश्यकता वाले डिज़ाइन प्रतिमानों के साथ आप कितने सहज हैं।

+2

असल में, क्यूटी अब कोको के साथ एकीकृत कर सकता है, इसलिए देखो और महसूस बिल्कुल वैसा ही हो सकता है। – Hejazzman

+0

हम मूल रूप से एक ही पृष्ठ पर हैं ;-) –

+0

ग्रेट दिमाग एक जैसे सोचते हैं? लो मिस्मो? :) –

4

जो मैं उपयोग करता हूं, उसके पास आपके आवेदन की सभी मूल कार्यक्षमता के साथ सी या सी ++ में लिखी एक आम पुस्तकालय है।

मान लें कि आप एक सॉलिटेयर गेम बना रहे हैं। तो आपके पास एक शुद्ध सी ++ (ज्यादातर प्लेटफ़ॉर्म स्वतंत्र) लाइब्रेरी में कोर क्लासेस होंगे।

  • CoreSolitaire
फिर

, आप, अलग यूआई परियोजनाओं होगा आप अपने सॉलिटेयर तैनात करने के लिए चाहते हैं एक मंच के लिए एक:

  • iSolitaire (ऑब्जेक्टिव-सी, मल्टी टच कोको के लिए आधार आईफोनओएस)
  • मैकसोलिटर (उद्देश्य-सी, मैक ओएस एक्स के लिए कोको आधारित)
  • विनसोलिटर (सी ++, विन 32 या सी # विंडोज प्लेफ के लिए आधारित ORMS)
  • GSolitaire (सी ++, GNOME/जीटीके लिनक्स/यूनिक्स के लिए आधारित)

यह अधिक काम है, लेकिन, मेरी राय में, परिणामी उत्पाद निश्चित रूप से की तुलना में बेहतर एक आप एक मंच स्वतंत्र का उपयोग करके मिल सकता है QT या wxWidgets जैसे विजेट सेट।

यह कहकर, यदि आप एक ऐसे कंपनी में आंतरिक रूप से अपने उत्पाद को तैनात करने जा रहे हैं जहां आपके पास तैनाती के माहौल पर पूर्ण नियंत्रण है, और आप इस बात की परवाह नहीं करते कि परिणामी उत्पाद विभिन्न प्लेटफार्मों पर कैसे व्यवहार करेगा, आप निश्चित रूप से सबकुछ (क्यूटी, wxwidgets, या किसी भी अन्य आप सामना कर सकते हैं) के लिए एक आम एपीआई का उपयोग कर सकते हैं।

+1

दरअसल, क्यूटी विंडोज और लिनक्स (केडीई या गनोम थीम सपोर्ट) में बिल्कुल मूल दिखता है। और कोको-क्यूटी एकीकरण के साथ, आप क्यूटी का उपयोग कर सकते हैं और मैक के लिए कोको जीयूआई भी थोड़ा और काम कर सकते हैं। 3 अलग यूआई टूलकिट का उपयोग कर धड़कता है। – Hejazzman

0

किसी को भी कई प्लेटफार्मों के लिए विकसित करने के लिए अभी तक अनुप्रयोगों एक वी एम की आवश्यकता के बिना मूल रूप चलाने की अनुमति दे में किसी भी अनुभव है?

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

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