تعتمد جميع ملفات .CPP على ملفين .H؟
سؤال
في 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
قد تعمل ...