سؤال

أقوم بتطوير DSL باستخدام محرر الرسوم البيانية الخاص به.هذه الملفات لها ملحق .own.لدي أيضًا أداة صغيرة تقوم بتجميع ملفات .own في ملفات .h.

X.own --> X.h وX/*.h

لقد قمت بكتابة ملف .rules بسيط لبدء الجيل.

مشكلتي هي التالية :تشتمل معظم ملفاتي المصدرية على X.h، لكن التغيير في X.own لا يعني أن X.h الذي تم إنشاؤه (أو أي ملف آخر تم إنشاؤه) سيكون مختلفًا.يتم التعامل مع هذا بواسطة المولد من خلال استخدام الملفات المؤقتة ومقارنة الملفات.لكن يبدو أن Visual Studio لا يعرف كيفية التعامل مع كل هذا.إذا قمت بتعيين خاصية "ملف (ملفات) الإخراج" على الملف (الملفات) الصحيحة، فإنه يفترض دائمًا أنه سيتم تغييرها.إذا لم أفعل ذلك، فسيتم إنشاء عملية الإنشاء الخاصة بها على افتراض أنها لن تكون كذلك!

كيف يمكنني تصحيح الأمور؟

1) إطلاق أداة البناء المخصصة

2) حساب عملية البناء على أساس التبعيات

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

المحلول 2

تعتبر إجابة jheriko مثيرة للاهتمام، لأنها توفر طريقة لإطلاق أداة مخصصة، ثم إنشاء تبعيات البناء.ولكنها ليست قابلة للاستخدام بشكل كبير، لأنك ستفقد بعد ذلك كل إمكانيات استخدام مجموعة أدوات "أدوات البناء المخصصة"، والتي يمكنك من خلالها

  • اختر دائمًا تجميع الملفات ذات الامتدادات الدقيقة
  • تخطي البناء المخصص لملف معين يدويًا في تكوين مشروع معين (وتصور هذا القرار)

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

ملحوظة :النهج الموضح أعلاه لا يعمل مع Incredibuild، والذي يبدو أنه يتجاهل أمر بناء المشروع.

نصائح أخرى

لا تستخدم عادة خيارات بناء أداة ولكن بدلا من إعداده كما حدث قبل بناء من أجل حل (هذا يمكن أن يستغرق خط القيادة العامة، تماما مثل أداة بناء مخصص). بهذه الطريقة سوف MSVS لا يفحص الملفات التي تم إنشاؤها. طالما #included هم أو المدرجة في حل اكسبلورر أنها ينبغي أن تجمع على ما يرام كما توليد الملفات .H سيحدث قبل أي مجموعة أخرى.

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

وهناك مخطط لطيفة تظهر مكان العثور على هذه الخيارات في خصائص حل <لأ href = "http://geekswithblogs.net/dchestnutt/archive/2006/05/30/80113.aspx" يختلط = "نوفولو noreferrer "> هنا

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