سؤال

دفعة كبيرة جدا المكتبة مع العديد من بين تبعيات-وهو أيضا وقتا طويلا لتجميع (وهو بالنسبة لي يبطئ لدينا CruiseControl وقت الاستجابة).

أجزاء فقط من دفعة تستخدم دفعة::regex وزيادة::تنسيق.

هل هناك طريقة سهلة لاستخراج أجزاء فقط من دفعة اللازمة معين دفعة الفرعية المكتبة لجعل مجموعات أسرع ؟

تحرير:للإجابة على السؤال حول لماذا نحن إعادة بناء دفعة...

  1. تحليل زيادة رأس الملفات لا يزال يأخذ وقت طويل.وأظن لو استطعنا استخراج فقط ما نحتاج تحليل سيحدث بشكل أسرع أيضا.
  2. لدينا CruiseControl الإعداد يبني كل شيء من الصفر.هذا أيضا يجعل من الأسهل إذا قمنا بتحديث إصدار دفعة نستخدمه.ولكن أنا سوف تحقق لمعرفة ما إذا كان يمكننا تغيير بناء العملية لمعرفة ما اذا كان لدينا بناء آلة يمكن بناء دفعة عندما تحدث تغييرات و ارتكاب تلك التغييرات إس.(بلدي الشركة لديها سياسة أن كل ما يخرج من الباب يجب أن تكون مبنية على "بناء آلة".)
هل كانت مفيدة؟

المحلول

أولا, يمكنك استخدام bcp أداة (يمكن العثور عليها في أدوات فرعي) إلى استخراج رؤوس الملفات الذي تستخدمه.هذا لن يساعد مع تجميع مرات ، على الرغم من.الثانية, لم يكن لديك إلى إعادة بناء دفعة في كل مرة.فقط قبل بناء lib الملفات مرة واحدة في كل نسخة التغيير ، ونسخ "المرحلة" مجلد في وقت البناء.

نصائح أخرى

إلا إذا كنت الترقيع دفعة المكتبات أنفسهم ، ليس هناك ما يدعو إلى إعادة ترجمة عليه في كل مرة كنت تفعل بناء.

نحن نستخدم دفعة, ولكن يتم تضمين ملفات الكائن عن تلك الأنواع التي نستخدم فعلا.I. e., نحن نبني الخاصة بنا مكتبة ثابتة مع مجموعة نابعة من المرافق وتشمل تلك الأجزاء من دفعة نجد مفيدة.لدينا CMakeLists.txt تبدو شيئا مثل هذا (يجب أن تكون قادرا على تحميل هذا في CMake ، إذا كنت ضبط المصادر وفقا لذلك.)

project( MyBoost )

set(SOURCES 
  boost/regex/src/c_regex_traits.cpp
  boost/regex/src/cpp_regex_traits.cpp
  boost/regex/src/cregex.cpp
  boost/regex/src/fileiter.cpp
  boost/regex/src/icu.cpp
  boost/regex/src/instances.cpp
  boost/regex/src/posix_api.cpp
  boost/regex/src/regex.cpp
  boost/regex/src/regex_debug.cpp
  boost/regex/src/regex_raw_buffer.cpp
  boost/regex/src/regex_traits_defaults.cpp
  boost/regex/src/static_mutex.cpp
  boost/regex/src/usinstances.cpp
  boost/regex/src/w32_regex_traits.cpp
  boost/regex/src/wc_regex_traits.cpp
  boost/regex/src/wide_posix_api.cpp
  boost/regex/src/winstances.cpp
)

add_library( MyBoost STATIC ${SOURCES})

المشغلات الأساسية هي كلمة اليوم!تشمل زيادة رؤوس تحتاج في رأس precompiled - تادا!

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