سؤال

هل نجح أي شخص في بناء gmock و gtest في Visual Studio 2010؟لقد حاولت باستخدام الإصدار 1.5.0، لكني لم أحصل إلا على أخطاء ترجمة غير مفهومة.

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

المحلول

لقد وجدت هذا مسلك في مجموعات Google حول المشكلات الموجودة عند بناء GMock-1.5.0 بموجب VS2010. بعد الموضوع ، قمت بإنشاء ملف ReadMe قصير ، والذي عمل بالنسبة لي ، لذلك هنا:

  • قم بتنزيل Gmock 1.5.0 من جوجل وهمية.
  • استخراج مجلد المكتبة على الجهاز (على سبيل المثال C: libs gmock -1.5.0). من الآن فصاعدًا ، سيتم إعادة تشغيل هذا المجلد على أنه "gmock_root".
  • افتح VS2010 ، وقم بتحميل الحل: gmock_root msvc gmock.sln. دع VS تحويله من VS2008 إلى VS2010. مهم! لا تقم بالنقر نقرًا مزدوجًا على ملف الحل ضمن gmock_root msvc. هذا أدى إلى تحويل سيء.
  • إجراء التغييرات التالية على المصادر وفقًا لـ مسلك:

    • في Project Gmock-> ملفات الرأس الخاصة-> Gmock-Internal-Utils.H:

      • الخطوط 201 ، 202: التعليق على وظائف "المساعد":

      char Helper(To);

      static char (&Helper(...))[2]; // NOLINT

      • الخطوط 210-219: استبدل كامل #ifdef..#endif القسم مع:

      static const bool value = std::is_convertible<From, To>::value;

    • في Project Gmock_Test-> ملفات المصدر-> gmock-printers_test.cc ، السطر 848: قم بإجراء صب صريح للوسيطة الفارغة إلى void*, ، وإلا فإن VS سوف يعتبر تلقائيًا أنه فارغ. يجب أن يبدو الخط الناتج هكذا:

      t10(false, 'a', 3, 4, 5, 1.5F, -2.5, str, static_cast<void*>(NULL), "10");

      1. بناء الحل. يجب أن يؤدي هذا إلى 4 تحذيرات ، والتي ، كما هو موضح أدناه ، هي (ربما) موافق.

أتمنى أن يساعدك هذا،

بزور


تحذيرات البرمجيات المترجمة VS2010 من الخطوة 5 (انظر الملاحظات في النهاية):

تحذير 1 تحذير C4996: 'std :: _ copy_impl': استدعاء الدالة مع المعلمات التي قد تكون غير آمنة - تعتمد هذه المكالمة على المتصل للتحقق من أن القيم التي تم تمريرها صحيحة. لتعطيل هذا التحذير ، استخدم -d_scl_secure_no_warnings. راجع الوثائق حول كيفية استخدام ملفات C ++ المرئية "C: Program Files"

تحذير 2 تحذير C4996: 'std :: _ copy_impl': استدعاء الدالة مع المعلمات التي قد تكون غير آمنة - تعتمد هذه المكالمة على المتصل للتحقق من أن القيم التي تم تمريرها صحيحة. لتعطيل هذا التحذير ، استخدم -d_scl_secure_no_warnings. راجع الوثائق حول كيفية استخدام ملفات C ++ المرئية "C: Program Files"

تحذير 4 تحذير C4413: 'std :: tr1 :: _ cons_node <_car ، _cdr> :: _ value': يتم تهيئة عضو المرجع إلى مؤقت لا يستمر بعد خروج المنشئ c: program files (x86) microsoft visual Studio 10.0 vc include tuple 137 1

تحذير 3 تحذير C4373: 'اختبار :: gmock_generated_function_mockers_test :: mockfoo :: takesconst' المؤهلات C: libs gmock-1.5.0 test gmock-function-mockers_test.cc 133 1

ملاحظات بخصوص التحذيرات:

  1. التحذيرات 1،2 تدور حول النسخ () في xutility يتم إهمالها بسبب Safty. نظرًا لأن مكتبة وهمية ليست جزءًا من إصدار الإنتاج ، فهذا جيد من قبلي.
  2. تحذير 4 على ما يرام وفقا ل مسلك.
  3. تحذير 3: لست متأكدًا ، ولكن يبدو أن كل شيء يعمل بشكل جيد.

نصائح أخرى

إذا كان لدى أي شخص مشكلة في إنشاء حل gmock نفسه، فلا يمكنه إنشاء ملفات .lib، فقد نجح هذا الأمر بالنسبة لي (مقابل 2015):

https://groups.google.com/forum/#!topic/googlemock/FaEAHedxpAQ

يحتوي gmock_config.props على تعريف قديم لـ GTestDir: <GTestDir>../../gtest</GTestDir>

استبدله ب <GTestDir>../../../googletest</GTestDir> ويجب أن تتجاوز خطأك.

على الأقل تم تجميع libs، وما زلت أتلقى خطأ gmock_test بالرغم من التغيير المقترح هناك.

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