2008-08-28 12 views
6

मैं जिस उत्पाद-समूह के लिए काम करता हूं वह वर्तमान में जीसीसी 3.4.6 का उपयोग कर रहा है (हम जानते हैं कि यह प्राचीन है) बड़े स्तर के सी-कोड बेस के लिए, और बाद के संस्करण में अपग्रेड करना चाहते हैं। हमने उन सभी हार्डवेयर प्लेटफार्मों पर जीसीसी 4.x के विभिन्न संस्करणों का परीक्षण करने वाले प्रदर्शन लाभों को देखा है जिन पर हमने परीक्षण किया था। हालांकि हम बहुत सी-कंपाइलर बग (ऐतिहासिक रूप से अच्छे कारण के लिए) से डरते हैं, और आश्चर्य करते हैं कि किसी के पास इस संस्करण की अंतर्दृष्टि है कि हमें किस संस्करण को अपग्रेड करना चाहिए।जीसीसी के किस 4.x संस्करण का उपयोग करना चाहिए?

क्या लोग बड़े कोड-बेस के लिए 4.3.2 का उपयोग कर रहे हैं और महसूस करते हैं कि यह ठीक काम करता है?

उत्तर

4

जीसीसी के लिए सर्वोत्तम गुणवत्ता नियंत्रण लिनक्स कर्नेल है। जीसीसी मूल रूप से सभी प्रमुख ओपन सोर्स सी/सी ++ कार्यक्रमों के लिए पसंद का संकलक है। एक जारी जीसीसी, विशेष रूप से 4.3.एक्स की तरह, जो कि प्रमुख लिनक्स डिस्ट्रोज़ में है, बहुत अच्छा होना चाहिए।

जीसीसी 4.3 के पास नए सीपीयू पर अनुकूलन के लिए भी बेहतर समर्थन है।

1

मेरे पास आपके लिए एक विशिष्ट संस्करण नहीं है, लेकिन 4.X और 3.4.6 स्थापित क्यों नहीं है? फिर आप कोड को दोनों संस्करणों पर संकलित करने और रखने की कोशिश कर सकते हैं, और यदि आप 4 में शो-स्टॉपिंग बग में भाग लेते हैं, तो आपके पास एक्जिट पॉलिसी है।

0

यदि आप ओपनएमपी में रूचि रखते हैं तो आपको जीसीसी 4.2 या उससे अधिक में स्थानांतरित करने की आवश्यकता होगी। हम लगभग 5 एम लाइनों के कोड बेस पर 4.2.2 का उपयोग कर रहे हैं और इसमें कोई समस्या नहीं है।

4

जब मैंने जीसीसी 3 से जीसीसी 4 तक एक परियोजना माइग्रेट की, तो मैंने यह सुनिश्चित करने के लिए कई परीक्षण चलाए कि व्यवहार पहले और बाद में समान था। क्या आप सही व्यवहार की पुष्टि करने के लिए बस (उम्मीदवार स्वचालित) परीक्षणों का एक सेट चला सकते हैं? आखिरकार, आप "सही" व्यवहार चाहते हैं, जरूरी नहीं कि जीसीसी 3 व्यवहार।

0

मैं 4.3.2 के बारे में कुछ भी नहीं कह सकता, लेकिन मेरा लैपटॉप जीसीसी 4.3 के साथ बनाया गया एक जेनेटू लिनक्स सिस्टम है। {0,1} (प्रत्येक पैकेज के निर्माण के आधार पर), और मैंने कोई नहीं देखा है समस्या का। हालांकि, यह ज्यादातर मानक डेस्कटॉप उपयोग है। यदि आपके पास कोई अजीब कोड है, तो आपका माइलेज भिन्न हो सकता है।

1

नवीनतम का उपयोग करें, लेकिन शिकार करें और प्रत्येक चेतावनी -Wall देता है। अतिरिक्त मस्ती के लिए, मेंढक के लिए और अधिक चेतावनी झंडे हैं। आप में रिग्रेशन (और अन्य) परीक्षणों का एक विस्तृत सूट है, उन्हें सभी चलाएं और उन्हें जांचें।

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

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