سؤال

النظر في رمز المصدر المفتوح قاعدة جئت عبر هذا الكود:

#include "StableHeaders.h"
#include "polygon.h"
#include "exception.h"
#include "vector.h"
...

الآن StableHeaders.h هو رأس precompiled والتي يتم تضمينها من قبل 'السيطرة' cpp إلى قوة الجيل.الثلاثة يتضمن التي تظهر بعد رأس precompiled أيضا في StableHeaders.ساعة الملف على أي حال.سؤالي هو هل هذه الملفات المدرجة مرتين بحيث رمز قاعدة بناء على المجمعين التي لا تدعم المشغلات الأساسية?وايم افتراض أن تشمل الحراس/رأس التخزين المؤقت سوف تجعل متعددة تشمل زائدة على أي حال...

تحرير راجع للشغل, stableheaders.ح ملف التحقق win32 (تقريبا) لذا مرة أخرى im افتراض أن يشمل داخل stableheaders.ح لن تدرج على المجمعين التي لا تدعم المشغلات الأساسية.

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

المحلول

المجمعين التي لا تدعم المشغلات الأساسية فقط تشمل StableHeaders.ح و إعادة التوزيع في كل مرة (بدلا من استخدام precompiled الملف).فإنه لن يسبب أي مشاكل ولا إصلاح أي مشاكل لبعض المجمعين كما طلبت.أعتقد مجرد طفيفة " خطأ " على الأرجح أن ذلك حدث أكثر من مرة خلال التنمية.

نصائح أخرى

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

السبب الوحيد الذي يمكنني أن أفكر لحماية رأس precompiled وتشمل الأشياء على أية حال هو السرعة.السبب في استخدام رؤوس precompiled هو تجميع مرات, هذا يعمل عن طريق بما في ذلك تجميع محتويات رأس precompiled, عند القيام بذلك يمكنك إدراج رؤوس تستخدم فقط من قبل 75% من الملفات المصدر و هو لا يزال أسرع من أي المشغلات الأساسية.

ومع ذلك إذا كان منصات أخرى أسفل الدعم prepcompiled رؤوس كنت تريد فقط تشمل رأس الملفات المطلوبة لهذا الملف المصدر.حتى إذا كان رأس precompiled يحتوي على تضمين الملفات المطلوبة فقط من قبل بعض الملفات المصدر هو أسرع تشمل فقط وتجميع رأس الملفات التي تحتاج إليها.

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