In einem meiner mitgelieferten Makefiles ist eine Regel für %.kt_rfgw
. Wenn ich das erste Mal kompiliere, gibt es No rule to make target
und es ist fehlgeschlagen. Aber wenn ich ein zweites Mal ohne Änderungen mache, wird es die Regeln finden, außer dass der Webserver nicht neu aufgebaut werden muss.keine Regel, damit das Ziel nach dem zweiten Mal funktioniert
Makefile:
TARGET:=kt_rfgw
all: webserver gateway
webserver:
...doing stuff...
gateway: $(CONTIKI_PROJECT).$(TARGET)
...doing stuff...
In einem Makefile.Include:
$(warning Rule: "%.kt_rfgw:" found)%.$(TARGET): %.co $(PROJECT_OBJECTFILES) $(PROJECT_LIBRARIES) contiki-$(TARGET).a
...doing stuff...
Fehlermeldung beim ersten Mal machen:
/c/...path.../Makefile.include:316: Rule: "%.kt_rfgw:" found
...
make[1]: *** No rule to make target `regelfern.kt_rfgw', needed by `gateway'. Stop.
No-Nachricht wann erstes Mal machen:
/c/...path.../Makefile.include:316: Rule: "%.kt_rfgw:" found
...
...compiling...
Bitte schließen Sie die Regel für '% .kt_rfgw' ein. Idealerweise streichen Sie alle unnötigen Dinge aus und erstellen ein [minimales, vollständiges und überprüfbares Beispiel] (https://stackoverflow.com/help/mcve). – l0b0
'$ (TARGET)' ist '% .kt_rfgw', sorry – Chris
Ich denke das Problem ist, dass das Ziel' Gateway' eine Datei benötigt, die vom Ziel 'webserver' erstellt wird. Aber erst zu Beginn wurden die Regeln für das Ziel "Gateway" überprüft. Kann man vor dem Start des zweiten Ziels noch einmal nachschauen? – Chris