जीसीसी आणि सीसी कंपाइलर यांच्यातील फरक

Anonim

GCC vs CC संकलक

CC हे UNIX Compiler Command नावाचे नाव आहे तो आपल्या ऑपरेटिंग सिस्टमसाठी डीफॉल्ट कंपाइलर आज्ञा म्हणून वापरला जातो आणि त्याच आदेशासह कार्यवाही करता येतो. जीसीसी, दुसरीकडे, जीएनयू कंपाइलर ऑपरेटिंग सिस्टम आहे. GNU आणि Linux वर चालणाऱ्या प्रणालींवर, सीसी एक दुवा म्हणून ओळखली जाते जेणेकरून स्क्रिप्ट कम्पाइलर एकेरी आणि सहजपणे वापरु शकतात. GNU कंपाइलर कलेक्शन आणि सीसी कंपाइलरचा वापर करण्याच्या बाबतीत विविध फरक आढळतात. हे फरक साधारणपणे दोन मुख्य गटांमध्ये गटात समाविष्ट केले जाऊ शकतात. यापैकी एक अधिक विशिष्ट असतो आणि इतर गट अधिक सामान्य असतो.

फरक

सी कॉम्प्लेअर्स आणि C ++ कंपाइलर यांच्यातील दोन सौद्यांची दरम्यान मुख्य फरक. C ++ कंपाइलर C ++ प्रोग्राम स्वीकारतात परंतु C मध्ये कार्यक्रमांचे संकलन करू नका. हे सहसा सत्य आहे, जरी हे दाखविण्यात आले आहे की सी ++ ने सी भाषेचा कोड तयार करणे शक्य आहे जे C ++ द्वारे बरेचदा C प्रोग्रेम मान्य नसतील तरीदेखील सी भाषा कोड लिहीत करणे शक्य आहे. दुसरीकडे, सी कम्पाइलर्स सी प्रोग्राम्स स्वीकारतात पण त्यापैकी बहुतांश C ++ प्रोग्राम्स त्या चालवतात. ही समस्या उद्भवली की आहे कारण बहुतांश C ++ प्रोग्राम्स चालवितात ज्या सी मध्ये उपलब्ध नाहीत.

या प्रोग्राम भाषांसाठी उपलब्ध लायब्ररी मुख्यत्वे भाषेवर अवलंबून असते. C ++ प्रोग्राम सी लायब्ररीवर चालवू शकतात, परंतु हे प्लॅटफॉर्म विशिष्ट आहे. दुसरीकडे सी प्रोग्राम C ++ लायब्ररी वापरू शकत नाही; अशा प्रकारे C ++ सी पेक्षा वेगळी लायब्ररी सेट उपलब्ध असणे लागते.

Solaris वर, कंपाइलर कमांड द्वारे निर्मीत ऑब्जेक्ट कोड जी ++ द्वारा उत्पादित कोडशी कोणत्याही प्रकारे अनुरूप नाही कारण हे दोन स्वतंत्र कंपाइलर आहेत आणि त्यांच्या अधिवेशनांमध्ये भिन्नता असेल मुख्य भिन्न मुद्द्यांमधील अपवाद हाताळणी आणि नावे जुळत नाहीत. हे लक्षात घेणे महत्वाचे आहे की वस्तू एकत्रितपणे जोडण्यापासून संरक्षित ठेवणे हे नाव mangling महत्वाचे आहे. हे प्रभावीपणे सीसी गरजांमध्ये संकलित केलेल्या लायब्ररीच्या वापरास आवश्यक आहे की संपूर्ण कार्यक्रम सीसीमध्ये संकलित केला जाईल. तसेच, जर आपल्याला सीसीसह ग्रंथालय आणि दुसरे जी ++ सह संकलित केले असेल तर, आवश्यक कार्यक्षमता सुनिश्चित करण्यासाठी लायब्ररीचे पुर्नसंरक्षण केले पाहिजे.

एन्सेललरचे गुणवत्ता निर्माण झाले आहे, जीसीसी, जे जीएनयू कंपाइलर कलेक्शन आहे, हे कार्य अतिशय उत्तम आहे. नेटिव्ह कंपाइलर काही वेळा चांगले काम करतात. इंटेल कंपाइलर जीसीसीमध्ये पुनरावृत्त करण्यासारखे अद्याप पूर्णपणे ऑप्टिमायझेशन असल्याचे म्हटले जाऊ शकते.

कंपाइलर दोन्ही सध्याच्या मानकेसाठी सर्व नवीन आहेत, तरीही मानकांनुसार आणि भाषा ज्या कम्पाइलरने समर्थन करते त्या भाषांमधील लहान फरक आहेत. हे मानके आहेत (C + + 98, C ++ 2003, C99).जुन्या C89 समर्थन दोन्ही कंपाइलरमध्ये उपलब्ध आहे आणि अपेक्षित प्रतिसादांची समज आवश्यक म्हणून संकलक रोल आउट करेल याची खात्री करणे महत्वाचे आहे. सर्व जीसीसी सर्व विस्तार आणि समन्वयांमुळे जीवन सोपे करण्यावर लक्ष केंद्रित केले गेले आहे जे अपेक्षित परिणाम मिळविण्यासाठी त्यासाठी केले जाऊ शकते.

सारांश

सी आणि सी + + कंपाइलर लायब्ररीची क्रॉस कॉम्पटिबिलिटीसह एक समस्या आहे.

C ++ प्रोग्राम्स सी लायब्ररीवर कार्य करू शकतात परंतु हे प्लॅटफॉर्म विशिष्ट आहे.

सीसीमध्ये लिहिलेल्या लायब्ररीचा वापर करण्यासाठी संपूर्ण प्रोग्राम सीसीसह नाही आणि GCC नाही.

जर आपल्याकडे सीसी आणि जी ++ मधे संकलित ग्रंथालय आहे, तर लायब्ररीपैकी एक पुन्हा कंपाइल केले पाहिजे.

गुणवत्ता असेंब्ली तयार करण्यात जीसीसी एक अद्भुत काम करते.

भाषिक वैशिष्ट्यांमधील दोन्ही सीसी आणि जीसीसी सध्याच्या मानकांशी संबंधित महान आहेत <