Projekt compiliert nicht immer
-
Hallo,
ich beobachte jetzt schon mehrfach, dass Änderungen im .c-file nicht compiliert werden. So erhalte ich beispielsweise eine Fehlermeldung, dass eine Variable mehrfach deklariert sei, obwohl sie bereits an allen stellen auskommentiert war.
Derartiges Verhalten kann eigentlich nur am Makefile liegen. Meins sieht so aus:CFLAGS=-g -std=c99 -D_XOPEN_SOURCE=700 `pkg-config gtk+-3.0 --cflags` CC=gcc .PHONY: clean all all: regeln.o schach.o gui.o $(CC) $(CPPFLAGS) $(CFLAGS) $^ -o schach `pkg-config gtk+-3.0 --libs` .c.o: $(CC) $(CPPFLAGS) $(CFLAGS) -c $< `pkg-config gtk+-3.0 --libs` clean: rm -f *.o schach
Passt das so? Oder gibt es eine andere Erklärung für meine Beobachtungen?
Vielen Dank :).
-
In Zeile 6 solltest Du
all
durch das Targetschach
ersetzen, ansonsten wird immer wieder gelinkt:schach: regeln.o schach.o gui.o $(CC) $(CPPFLAGS) $(CFLAGS) $^ -o $@ `pkg-config gtk+-3.0 --libs`
In Zeile 11 gehört der Befehl in die nächste Zeile, die Zeile des Targets ist für Abhängigkeiten vorgesehen. Ausserdem kannst Du Dir
pkg-config gtk+-3.0 --libs
sparen:.c.o: $(CC) $(CPPFLAGS) $(CFLAGS) -c $<
Eventuelle Änderungen in Headerdateien werden nicht erkannt, da keine Abhängigkeiten deklariert wurden. Ansonsten sollte es so funktionieren.
- osdt
-
Eventuelle Änderungen in Headerdateien werden nicht erkannt, da keine Abhängigkeiten deklariert wurden.
Genau das war das Problem. Danke für die Hilfestellung!