2010-05-10 18 views
12

मैं यह पता लगाने की कोशिश कर रहा हूं कि कौन सी सी/सी ++ कंपाइलर उपयोग करने के लिए है। मैं विकिपीडिया पर C/C++ compilers की इस सूची में पाया:मैं कैसे निर्धारित कर सकता हूं कि सी/सी ++ कंपाइलर का उपयोग करने के लिए?

http://en.wikipedia.org/wiki/List_of_compilers#C.2FC.2B.2B_compilers

मैं काफी हद तक निश्चित है कि मैं एक खुला स्रोत संकलक साथ जाना चाहते हैं। मुझे लगता है कि यदि यह ओपन सोर्स है तो यह एक और पूर्ण कंपाइलर होगा क्योंकि कई प्रोग्रामर दृष्टिकोण इसका बेहतर इस्तेमाल करने के लिए उपयोग किए जाते हैं। अगर आप असहमत हैं तो कृपया मुझे बताएं।

मुझे यह उल्लेख करना चाहिए कि मैं मुख्य रूप से प्रोग्राम 2 डी/3 डी गेम अनुप्रयोगों के लिए सी/सी ++ सीखने की योजना बना रहा हूं जो विंडोज, लिनक्स, मैक और आईफोन ऑपरेटिंग सिस्टम के साथ संगत होगा। मैं वर्तमान में विंडोज विस्टा एक्स 64 ओएस का उपयोग कर रहा हूं।

+0

iPhone -> जीसीसी और LLVM केवल विकल्प हैं। – kennytm

+0

यदि आप ऐप्पल ऐपस्टोर एक्सकोड और ऑब्जेक्टिव-सी में आईफोन ऐप्स प्रकाशित करने की योजना बना रहे हैं तो केवल समर्थित विकल्प हैं। – jnoss

+0

मुझे पता नहीं था कि आप सी ++ में गैर-जेलब्रोकन फोन पर कानूनी रूप से आईफोन एप्लिकेशन विकसित कर सकते हैं। मैं इस धारणा के तहत था कि उद्देश्य-सी की आवश्यकता थी। – Uri

उत्तर

15

सबसे पहले, शुरुआत के रूप में आईएमएचओ आपके विकास पर्यावरण (आईडीई) कंपाइलर से बहुत अधिक मायने रखता है।

मुझे लगता है कि लोग संकलक पसंद पर बहुत अधिक जोर देते हैं। हालांकि यह जावा नहीं है, सी ++ पोर्टेबल होने के लिए है।

यदि आप जो प्रोग्राम लिख रहे हैं वह केवल विशिष्ट कंपेलरों के साथ काम करता है, तो आप शायद गलत काम कर रहे हैं या इसे अधिक पोर्टेबल बनाने पर थोड़ा सा काम कर सकते हैं।

यदि आप उस बिंदु पर पहुंचते हैं जहां कंपाइलर विकल्प आपके लिए महत्वपूर्ण प्रदर्शन प्रभाव डालता है, तो आप अपने कार्यक्रम में सबकुछ पहले ही पूरा कर चुके हैं और आप एक अच्छी स्थिति में हैं और आप अपनी क्षमताओं में भी काफी उन्नत हैं। हम सीएस पाठ्यक्रम में काफी उन्नत चरणों में कंपाइलर्स के बीच मतभेद सिखाते थे।

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

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

+0

मैं विंडोज विस्टा x64 का उपयोग कर रहा हूं। मैंने सी/सी ++ के लिए सर्वश्रेष्ठ आईडीई की खोज की और अधिकांश लोग माइक्रोसॉफ्ट विजुअल स्टूडियो कह रहे हैं, लेकिन मैं सिर्फ विंडोज ओएस (एक्सपी/विस्टा/7) नहीं बल्कि सभी ऑपरेटिंग सिस्टम के लिए विकसित करना चाहता हूं। मैंने पढ़ा है कि आईडीई चुनते समय पोर्टेबिलिटी पर विचार करना महत्वपूर्ण है। –

+0

यदि आप एक गेम विकसित कर रहे हैं, तो आप शायद 2 डी/3 डी ग्राफिक्स एपीआई का उपयोग कर रहे हैं जो कि प्लेटफार्म के लिए स्वामित्व है, जैसे डायरेक्टएक्स बनाम ओपनजीएल बनाम। जो भी आईफोन पर उपयोग किया जाता है। यदि आप केवल सी ++ सीख रहे हैं और मानक पुस्तकालयों का उपयोग कर रहे हैं, तो आपके कोड का उपयोग करने वाले ओएस या कंपाइलर के बावजूद आपका कोड आसानी से पोर्टेबल होगा। – Uri

+6

@ एडम: नहीं, पोर्टेबिलिटी आईडीई पसंद आईएमओ के लगभग पूरी तरह से ऑर्थोगोनल है। अपना पसंदीदा आईडीई चुनें, पोर्टेबल कोड लिखने के लिए इसका उपयोग करें (यानी आईडीई के कंपाइलर के साथ आने वाले कंपाइलर एक्सटेंशन से बचें), फिर जब आप पूरा कर लें तो उस कोड को ले लें और इसे अपने अन्य लक्षित प्लेटफ़ॉर्म पर संकलित करें, संभवतः एक अलग कंपाइलर का उपयोग करके। उदाहरण के लिए, मैं विजुअल स्टूडियो का उपयोग करके अपने अधिकांश कार्यक्रम लिखता हूं, फिर ओएस एक्स/लिनक्स पर प्रोजेक्ट संकलित करने के लिए जीसीसी का उपयोग करता हूं। नकारात्मकता यह है कि जब मैं बंदरगाह मुझे एक अलग मेकफ़ाइल लिखना है (एमएसवीसी उनका उपयोग नहीं करता है), जो दर्द है लेकिन इसके लायक है। – user168715

14

जीसीसी और जी ++ का उपयोग करें, जबकि आप अभी भी इन भाषाओं को सीख रहे हैं, अब के लिए एक बड़ा काम है। यदि आपको सड़क के नीचे एक विशेष कंपाइलर की आवश्यकता है, तो आप उम्मीदवारों का उचित मूल्यांकन करने के लिए भाषा और आपकी समस्या डोमेन की गहरी समझ लेना चाहेंगे।

+4

+ 1 ... जीसीसी अनुपालन और पोर्टेबिलिटी में अग्रणी है। – Potatoswatter

+4

@Potatoswatter: क्या तुलना में? – jalf

+1

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

5

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

+4

टूलकिट को क्यूटी (ऊपरी क्यू, निचला टी) कहा जाता है; क्यूटी क्विकटाइम (ऊपरी क्यू और टी) है। – CMircea

+0

मैं देखता हूं। शायद आप सही हैं। आखिरकार मैं सिर्फ एक नौसिखिया हूँ। निश्चित रूप से कुछ विचार करने के लिए। धन्यवाद। –

5

मुझे लगता है कि यदि यह खुला स्रोत है तो यह एक अधिक पूर्ण कंपाइलर होगा क्योंकि कई प्रोग्रामर दृष्टिकोण इसका बेहतर उपयोग करने के लिए उपयोग किए जाते हैं।

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

माइक्रोसॉफ्ट के पास Visual C++ Express Edition है जो निःशुल्क और संभोग में एक अच्छा आईडीई शामिल है जो विंडोज विकास के लिए बहुत उपयुक्त है।

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

+0

खैर, मैं अपने सीएस/सी ++ कोड को अपने विंडोज़ विस्टा मशीन पर बाद में मैक पर्यावरण पर लिखने की योजना बना रहा हूं। मुझे नहीं लगता कि विजुअल सी ++ एक्सप्रेस मेरे लिए शुरू करने के लिए एक स्मार्ट विकल्प होगा। मैं बस जीसीसी और सिगविन में सीधे कूद सकता हूं। विंडोज और सिग्विन के लिए जीसीसी के लिए क्या आईडीई उपयुक्त होगा? –

+0

उदाहरण के लिए कोड :: ब्लॉक http://www.codeblocks.org/ जो विंडोज, लिनक्स और मैक ओएस एक्स के लिए नि: शुल्क और उपलब्ध है। आप सी ++ विकास के लिए एक्लिप्स या नेटबीन का भी उपयोग कर सकते हैं, हालांकि वे मुख्य रूप से जावा आईडीई हैं । आपको अपने सिस्टम पर जीसीसी स्थापित करने की आवश्यकता है और फिर उन आईडीई का उपयोग आपके कोड को संकलित करने के लिए किया जाएगा। – Jesper

+0

सिगविन अच्छा है, लेकिन यदि आप वाणिज्यिक अनुप्रयोगों का विकास कर रहे हैं तो एक समस्या हो सकती है। –

0

खिड़कियों यू codeblocks उपयोग कर सकते हैं मेरा मानना ​​है कि यह जीसीसी और अपनी सुंदर अनुकूल

+0

विंडोज़ पर, वास्तव में, कोड :: ब्लॉक MinGW के साथ आता है :) –

0

मैं दृढ़ता से MinGW के साथ जा रहा सुझाव है कि उपयोगकर्ता का उपयोग करता है।

यह है:

  • ओपन-सोर्स
  • सभी प्रमुख प्लेटफार्मों
  • मानक Win32 हेडर और पुस्तकालयों के साथ आता है पर उपलब्ध
+0

सभी प्रमुख प्लेटफ़ॉर्म पर उपलब्ध है? क्या इसका मतलब यह लिनक्स के लिए उपलब्ध है: पी – hhafez

+0

मिनजीडब्ल्यू विंडोज के लिए जीसीसी का एक विशेष निर्माण है। –

+0

@hhafez: यह लिनक्स के लिए उपलब्ध है। वास्तव में, बहुत से लोग इसका उपयोग लिनक्स पर विंडोज अनुप्रयोगों के निर्माण के लिए करते हैं। फिर वे उन्हें वाइन में परीक्षण करते हैं। –

0

++ पोर्टेबल सी लिखने के लिए कोड कुंजी है:

  • क्रॉस-प्लेटफार्म ve का उपयोग करें rsion नियंत्रण प्रणाली (तोड़फोड़ के लिए एक महान पसंद है), क्योंकि यह यह
  • संकलित करने के लिए आसान बना देता है और जल्दी दूसरे प्लेटफार्म पर अपने कोड का परीक्षण और अक्सर
संबंधित मुद्दे

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