ما هو الإصدار 4.x من gcc الذي يجب استخدامه؟

StackOverflow https://stackoverflow.com/questions/32448

  •  09-06-2019
  •  | 
  •  

سؤال

تستخدم مجموعة المنتجات التي أعمل بها حاليًا الإصدار gcc 3.4.6 (نعلم أنه قديم) لقاعدة كبيرة من رموز c ذات المستوى المنخفض، ونريد الترقية إلى إصدار أحدث.لقد رأينا فوائد الأداء في اختبار إصدارات مختلفة من gcc 4.x على جميع الأنظمة الأساسية للأجهزة التي اختبرناها عليها.ولكننا كذلك جداً خائفًا من أخطاء برنامج c-compiler (لسبب وجيه تاريخيًا)، وأتساءل عما إذا كان لدى أي شخص فكرة عن الإصدار الذي يجب أن نقوم بالترقية إليه.

هل يستخدم الأشخاص الإصدار 4.3.2 لقواعد الأكواد الكبيرة ويشعرون أنه يعمل بشكل جيد؟

هل كانت مفيدة؟

المحلول

أفضل مراقبة للجودة في دول مجلس التعاون الخليجي هي Linux kernel.إن مجلس التعاون الخليجي هو المترجم المفضل لجميع برامج C/C++ الرئيسية مفتوحة المصدر.يجب أن يكون إصدار دول مجلس التعاون الخليجي، خاصة إصدار مثل 4.3.X، الموجود في توزيعات Linux الرئيسية، جيدًا جدًا.

يتمتع إصدار دول مجلس التعاون الخليجي 4.3 أيضًا بدعم أفضل للتحسينات على وحدات المعالجة المركزية الأحدث.

نصائح أخرى

عندما قمت بترحيل مشروع من دول مجلس التعاون الخليجي 3 إلى دول مجلس التعاون الخليجي 4، قمت بإجراء عدة اختبارات للتأكد من أن السلوك كان هو نفسه قبل وبعد.هل يمكنك فقط تشغيل مجموعة من الاختبارات (نأمل أن تكون آلية) لتأكيد السلوك الصحيح؟بعد كل شيء، أنت تريد السلوك "الصحيح"، وليس بالضرورة سلوك مجلس التعاون الخليجي 3.

ليس لدي إصدار محدد لك، ولكن لماذا لا يكون لدي 4.X و 3.4.6 مثبت؟ثم يمكنك محاولة الاستمرار في تجميع التعليمات البرمجية في كلا الإصدارين، وإذا واجهت خطأً في الإصدار 4، فلديك سياسة خروج.

استخدم أحدث واحد، ولكن مطاردة وفهم كل تحذير -Wall يعطي.لمزيد من المتعة، هناك المزيد من العلامات التحذيرية التي يجب عليك رميها.أنت يفعل لديك مجموعة واسعة من اختبارات الانحدار (وغيرها)، وقم بتشغيلها جميعًا والتحقق منها.

لقد تغير مجلس التعاون الخليجي (خاصة C++، ولكن أيضًا C) قليلاً.إنه يقوم بتحليل وتحسين التعليمات البرمجية بشكل أفضل بكثير، ويتعامل مع التعليمات البرمجية التي يتبين أنها تستدعي سلوكًا غير محدد بشكل مختلف.لذا فإن التعليمات البرمجية التي "عملت بشكل جيد" ولكنها اعتمدت بالفعل على بعض التفسيرات المحددة للإنشاءات غير الصالحة من المحتمل أن تنكسر.نأمل أن يصدر المترجم تحذيرًا أو خطأ، لكن لا يوجد ضمان لهذا الحظ.

إذا كنت مهتمًا ببرنامج OpenMP، فستحتاج إلى الانتقال إلى الإصدار gcc 4.2 أو أحدث.نحن نستخدم الإصدار 4.2.2 على قاعدة تعليمات برمجية مكونة من حوالي 5 ملايين سطر ولا نواجه أي مشاكل معه.

لا أستطيع أن أقول أي شيء عن الإصدار 4.3.2، لكن جهاز الكمبيوتر المحمول الخاص بي هو نظام Gentoo Linux المبني باستخدام الإصدار 4.3 من مجلس التعاون الخليجي.{0,1} (اعتمادًا على وقت إنشاء كل حزمة)، ولم أشاهد أية مشكلات.هذا في الغالب مجرد استخدام قياسي لسطح المكتب.إذا كان لديك أي رمز غريب، فقد تختلف المسافة المقطوعة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top