Gast
#1775393
Hallo Forum,
ich nutze den GNU make und gcc, aktuell compiliere ich einmal alles
durch und linke dann. Das funktioniert auch soweit ohne Probleme. Nun
muss ich um ein nach dem Linken erzeugtes Headerfile mit in das Target
zu bekommen zwei c-files nochmals compilieren und erneut linken.
Leider geht das irgendwie nicht, ich vermute dass make erkennt dass es
die zwei files eben erst compiliert hat und die object files noch
brandaktuell sind, und deshalb dies nicht ausführt. Ich habe auch schon
versucht automatisiert die object Files zu löschen, leider hat das am
Ergebnis nichts geändert.
Hat jemand eine Idee wie ich das hinbekommen könnte?
ausschnitt aus meinem makefile:
all : $(TARGET) $(CRCTARGET)
$(TARGET) : $(OBJS)
$(LINKER) $(LFLAGS) -o $(OBJS_DIR)$(TARGET)
$(CRC) $(CRCFLAGS) $(OBJS_DIR)$(TARGET).hex
$(shell calculate.exe)
$(RM) $(OBJS_DIR_WIN)\htb*.o
$(CRCTARGET) : $(SNDOBJS)
@echo '!!! CALL LINKER $(OBJS)'
$(LINKER) $(LFLAGS) -o $(OBJS_DIR)$(SNDTARGET)
@echo '!!! SUCCESSFULLY BUILDED target: $@'
Wie gesagt, die c-files die hinter $(OBJS) stehen werden compiliert, und
gelinkt. Danach mache ich meine Berechnugnen und lösche die Objectfiles.
Jetzt würde ich erwarten dass er die c-files hinter $(SNDOBJS)
compiliert und dann alles nochmals linkt. Macht er aber nicht, er
versucht nur direkt zu linken, was natürlich schief geht, da ich die
object files gelöscht habe.
Gruß
Hans