سؤال

أحاول ترجمة مكتبة نقطة السحابة (PCL) من المصادر في Visual Studio 2013 (مع V120 Toolset و MSCL18 بالطبع) لأنني بحاجة إلى هذه المكتبة لمشروع VS2013. اتضح مهمة صعبة، على الرغم من.

  • من ناحية، لا يتم تجميع مصادر PCL في VS2013 بسبب كسر التغييرات في قوالب C ++ القياسية C ++ في VS2013
  • من ناحية أخرى، عند تجميعها في VS2012، PCL DLLs لها CRT وحتى أبسط التعطل الرمز المتعلق PCL

على سبيل المثال، في VS2013 Snippet هذا الرمز:

giveacodicetagpre.

يلقي استثناء في "EnterCriticalSection (((((_ (filex *) pf) -> قفل))؛"، والذي هو موضح في هذا السؤال ، بسبب CRTs المختلفة في PCL DLLs و EXE الخاص بي.

كحل أخير، أحاول تغيير Fromptend C ++ من MSCL18 إلى MSCL17 من أجل تلقي ملفات كائن أو مجمع وربطها في خطوة بناء أخرى مع رابط CL18. لم أجد طريقة جيدة للقيام بذلك بعد.

لذلك سؤالي هو إذا قد يشارك أي شخص تجربتهم في مجموعة من خطوتين، وكيفية استبدال نسخة مترجم المحول البرمجي السابق أو ما قد يكون حلا آخر في هذه المشكلة؟

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

المحلول

حاولت بعض الأساليب لتجميع مكتبة الطرف الثالث هذه دون تغيير شفرة مصدر المكتبة. واحد، الذي اتضح للعمل موافق، استبدال VS2013 C ++ الواجهة الأمامية (Toolset V120، MSCL18) مع السابق (VS2012، Toolset V110، MSCL17) بالنسبة لبعض الملفات، والتي لا تذهب عبر VS2013، وبعد ذلك باستخدام الناتج عن ملفات OBJ في مزيد من الترجمة في VS2013.

قامت تصريحات James McNellis بعمل رائع لأنها ساعدتني بشكل أفضل في فهم أخطاء الترجمة بشكل أفضل وتثبيتها بعناية في كائنات تيار VS2013 STL وسلسلة وتخرج مع مجموعة فرعية من VS2013 STL التي جمعت غرامة مع مجموعة أدوات VS2012 الأصلية.

في الواقع، قمت بإنشاء أداة بناء مخصصة (مشروع C ++ -> خصائص) لتكوين ومنصات مختلفة:

giveacodicetagpre.

مع المخرجات التالية:

giveacodicetagpre.

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

30 مارس التحديث: لم نجد أي خطأ في هذا النهج لبضع أشهر على عدة صناديق ديف واختبار.

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