سؤال

في Makefile ، لدي السطر التالي:

helper.cpp: dtds.h

مما يضمن إعادة بناء helper.cpp عندما يتم تغيير DTDS.H. ومع ذلك ، أريد إعادة بناء جميع الملفات في المشروع إذا تغير أي من ملفين رأسين آخرين ، نوعًا ما:

*.cpp: h1.h h2.h

من الواضح أن هذا لن ينجح ، لكنني لا أعرف الطريقة الصحيحة للحصول على Nmake لفعل ما أريد. هل يمكن لأحد أن يساعد؟ لا أريد أن أحدد يدويًا أن كل ملف فردي يعتمد على H1.H و H2.H.

شكرًا. (أنا أستخدم Nmake مدرج في Visual Studio 2005.)

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

المحلول 2

شكرا لمساعدتكم ، كريستوف. حاولت:

.cpp.obj: h1.h h2.h

وحصلت على رسالة الخطأ المفيدة:

makefile(58) : fatal error U1086: inference rule cannot have dependents

انتهى بي الأمر بحلها عن طريق وضع قائمة بالملفات التي أردت تجميعها ، ثم إضافة التبعية إلى القائمة بأكملها.

files = file1.obj file2.obj file3.obj
$(files): h1.h h2.h

نصائح أخرى

محاولة

%.cpp : h1.h h2.h

هذا يعمل في GNU - لا فكرة عما إذا كان Nmake متوافقًا ...

يحرر: وذين راجع للشغل: لا ينبغي أن يكون ذلك

helper.o : dtds.h

%.o :  h1.h h2.h

بعد كل شيء ، لا تريد إعادة تشكيل .cpp ملف (كيف تصنع ملف مصدر؟) ، لكن إعادة الترجمة ...

EDIT2: افحص ال مرجع nmake. وفق هذه, ، شيء مثل

.cpp.obj: h1.h h2.h

قد تعمل ...

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