سؤال

أقوم حاليًا بتطوير OpenSolaris 2009-06. يبدو أن وثائق Boost :: MPL تشير إلى أن برمجيات الشمس هم غير مدعوم (تم آخر تحديث المستند في عام 2004). يبدو أن الوثائق الأعلى للمستوى الخاص بـ Boost تشير إلى أن مجموعة Sun Compilers 5.10 فصاعدًا مدعومة - أعتقد أن هذا مستوى عام من الدعم أو هل يشمل ذلك MPL؟ هل لدى أي شخص أي تفاصيل عن حالة C ++ المطابقة للمترجمين Sun 5.10؟

يمكنني دائمًا تجميع باستخدام GCC.

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

المحلول 3

أعتقد أنه نظرًا لعدم تقديم إجابة دقيقة ، يجب أن أنشر بنفسي.

يبدو أن OpenSolaris (2009.06) و Boost-1.4.1 يعمل بشكل جيد. ال ./bjam يختار المفاتيح الصحيحة و boost::mpl يبدو أن يعمل بشكل جيد مع برنامج التحويل البرمجي للشمس. لذلك ، بقدر ما أستطيع أن أخبر وثائق MPL بشأن دعم التحويل البرمجي قديم تمامًا.

نصائح أخرى

لقد حققت بعض النجاح مع برنامج Boost و Sun's CC على Solaris 10 ، لكنه ألم. الشيء الرئيسي الذي يجب تذكره هو أنك تحتاج ،

 -library=stlport4 -features=tmplife -features=tmplrefstatic

فيك cxxflags لكل ما تقوم بتجميع انظر هنا للحصول على التفاصيل )

هذا يعني بالطبع أنه سيتعين عليك إعادة بناء أي مكتبات تحتاج إلى ربطها (ستكون محظوظًا جدًا إذا استخدموا بالفعل STLPort4).

للأسف ، هذا عن السبب الوحيد الصحيح (بشكل هائل) لعدم استخدام Boost :-(

مدونة Sun C ++ Frontend Tairs

لقد قاتلت من خلال هذه المشكلة بنفسي في الماضي ، وهو ألم في الخلف.

لكي تكون أكثر تحديداً قليلاً على إجابة كريس هوانغ-ليفر ، تحتاج حقًا إلى استخدام STLPort4 على مجمعات الشمس. إن STL الافتراضي الذي تم تسليمه بواسطة Sun غير مكتمل ، وفقًا لوثائقها الخاصة (سأقوم بتتبعه في مرحلة ما). الخيارات الأخرى التي يذكرها كريس مفيدة ، لكنها ليست حقًا جذر المشكلة.

الخبر السار هو أن الشمس ايضا يسلم STLPort الإصدار 4 مع مجمعاتهم ، لذلك كل ما تحتاجه هو تضمين علامة "-library = stlport4" من أجل التبديل إليها. لماذا يقومون بتسليم نسختين (واحد شبه مكسول) من STL ، بدلاً من واحد فقط صحيح الإصدار ، هو أبعد مني.

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