Hoewel ik me redelijk om m'n gemak voel in de wondere wereld van linux, zijn makefiles nog steeds een klein wonder voor mij 
Ik krijg maar niet onder de pet hoe deze dingen werken, dus ik hoop dat een van jullie mij verder kan helpen
stel de volgende situatie:
sources: src/*.cpp
headers: include/*.h
target: bin/progje
objects: obj/*.o
nu wil ik graag een Makefile maken die op basis hiervan, de cpp's kan compileren tot *.o files, en het liefst alleen opnieuw compilen if needed en het target kan linkej op basis van deze *.o files. Het lijkt mij een haalbaar doel, maar ik kom er maar niet uit
ik had het volgende in gedachte:
Mijn idee was, dat wanneer je 'make prog' aanroept, deze eerst obj aanroept, welke eerst de *.o files maakt, waarna deze gebruikt worden om naar de executable gelinkt te worden. Echter heb ik de logica kennelijk niet begrepen, want zo werkt het helaas niet
wie kan mij uitleggen hoe het wel moet?
alvast bedankt!
Ik krijg maar niet onder de pet hoe deze dingen werken, dus ik hoop dat een van jullie mij verder kan helpen
stel de volgende situatie:
sources: src/*.cpp
headers: include/*.h
target: bin/progje
objects: obj/*.o
nu wil ik graag een Makefile maken die op basis hiervan, de cpp's kan compileren tot *.o files, en het liefst alleen opnieuw compilen if needed en het target kan linkej op basis van deze *.o files. Het lijkt mij een haalbaar doel, maar ik kom er maar niet uit
ik had het volgende in gedachte:
CC=/usr/bin/g++
SRC=src/*.cpp
OBJD=obj/
OBJS=*.o
CFLAGS=-Iinclude
clean:
-rm $(OBD)$(OBJS)
obj: $(SRC)
$(CC) $(CFLAGS) -c -o $(OBJD)$@
prog: obj
$(CC) $(CFLAGS) -o bin/$@
Mijn idee was, dat wanneer je 'make prog' aanroept, deze eerst obj aanroept, welke eerst de *.o files maakt, waarna deze gebruikt worden om naar de executable gelinkt te worden. Echter heb ik de logica kennelijk niet begrepen, want zo werkt het helaas niet
wie kan mij uitleggen hoe het wel moet?
alvast bedankt!
oprecht vertrouwen wordt nooit geschaad