سؤال

أنا أتابع الاتجاهات على باستخدام التحقق مع autotools الصفحة في محاولة للبناء في دعم اختبار الوحدة في مشروع C صغير (حاليا). على الرغم من أنني أستخدم cgreen. بدلا من يفحص.

أواجه مشكلة في الخطوة 9، والتي تسبب السيارات في تنبعث منها تحذير حول استخدام قواعد نمط "٪" كونك ملحق جنو.

قاعدة عمل خاصة هي:

check_%.$(OBJEXT) : $(srcdir)/%.c
    $(COMPILE) -DCHECKING -c -o $@ $^

أتساءل عما إذا كانت هناك طريقة مكافئة لتحديد هذه القاعدة التي لا تعتمد على GNU إجراء ملحقات.

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

المحلول

يمكن أن تستخدم القواعد المحمولة فقط لاحقات مختلفة، يجب أن تكون البادئات هي نفسها.

.c.o:
        $(COMPILE) -DCHECKING -c -o $@ $<

لا تبدأ اللاحقة بالضرورة بطريقة، ولكن. (في هذه الحالة، عليك أن تخبر الآي بأتمتة ما هي لاحظاتك، لأنه لا يمكن تخمينها.) لذلك على سبيل المثال، قد يكون لديك شيء ما على النحو التالي إذا قمت بإعادة تسمية check_showdns.o ل showdns_check.o:

SUFFIXES = _check.o 
check_libapdns_LDADD        = @CHECK_LIBS@ showdns_check.o
.c_check.o:
        $(COMPILE) -DCHECKING -c -o $@ $<

نصائح أخرى

أفضل محاولة تعطيل التحذير أو تجاهلها فقط. جعل جنو موجودا لجميع المنصات التي تشبه اليونكس ذات الصلة؛ لا يوجد سبب عملي لقضاء بعض الوقت في الحفاظ على قابلية النقل. GNU Make هو أيضا ميزة Wise Superior على معظم اللهجات الأخرى.

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