Makefile Problem
-
Hallo zusammen
Ich habe etwas Probleme mit der Makefile Generierung. Ich möchte dass mein Projekt inkrementell gebilded werden kann, also nur die object files neu kompilliert werden, bei denen sich etwas geändert hat. Zudem möchte ich alle object files in einem unterordner, z.B. ./obj/, zusammenfassen. Wenn ich aber alle object files in diesem Unterordner habe, dann funktioniert aber das inkrementelle kompillieren nicht mehr. Wahrscheindlich sucht der Compiler sie am falschen ort. Kann mir da jemand helfen? Meine Rule sieht folgendermassen aus
%.o : %.c $(GCC) -c $(CCFLAGS) $(INCLUDES) $< -o $(OBJPATH)$(notdir $@)
Ich habe es dann folgendermassen versucht, dann kompilliert allerdings gar nichts mehr:
$(OBJPATH)/%.o : $(SRC)/%.c $(GCC) -c $(CCFLAGS) $(INCLUDES) -o $@ $<
Vielen Dank für eure hilfe!
Gruss
-
Hi!
Ich hab mir mal ein generelles Makefile geschrieben, dass in einem src-Ordner alle .c (.cpp) nimmt, compiliert und in einem obj-Ordner reinschreibt.
CC=gcc LD=gcc CFLAGS=-c -g -Wall -I $(INCLUDEPATH) -o LDFLAGS=-o INCLUDEPATH=include/ TARGET=test SRC=$(wildcard src/*.c) OBJ=$(patsubst %.c,%.o,$(subst src,bin,$(SRC))) .SUFFIXES:.c .h .o .PHONY: clean bin/%.o: src/%.c $(CC) $(CFLAGS) $@ $< $(TARGET): $(OBJ) $(LD) $(LDFLAGS) $(TARGET) $(OBJ) clean: rm -rf $(TARGET) rm -rf $(OBJ)
mfg bauerb
-
Und bei dir klappt es mit dem inkrementellen build?
Gruss
-
Nimm einfach die ultimative Makefile.
-
Dieser Thread wurde von Moderator/in rüdiger aus dem Forum ANSI C in das Forum Rund um die Programmierung verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Danke für den Link. ich habe versucht das makefile etwas abzuändern, da meine sourcen in verschiedenen source ordnern liegen. Habe es aber bis jetzt noch nicht hingekriegt. Was müsste man da alles abändern?
Gruss und Danke