.o im gleichen Verzeichnis erstellen, wie .c geht nicht
-
Hallo,
ich wollte mit einem Makefile eine Datei in einem Unterverzeichnis
kompilieren. Das entstehende .o soll ebenfalls im Unterverzeichnis landen.
Leider landet es aber im oberen Verzeichnis des Makefiles. Nur das verlinkte
Endprodukt sollte eigentlich in dieses oberste Verzeichnis.Mein Makefile sieht in etwa so aus:
SOURCE = ./src/foobar.c OBJECTS = $(SOURCE:.c=.o) .PREFIXES = .c .o CC = gcc CFLAGS = -g -Wall .c.o: $(CC) -c $(CFLAGS) $< program.exe: $(OBJECTS) $(CC) -o $@ $(OBJECTS) all: program.exe
Wie bekomme ich die .o Dateien dort hin gemacht, wo auch die .c Dateien liegen?
Gibt es da keine gcc Anweisung?
-
Versuchs mal mit
%.o: %.c gcc $(CC) $(CFLAGS) -o $@ -c $<
-
-
Oder noch einfacher:
all: gcc -c ./src/foobar.c -o ./src/foobar.o -Wall -g gcc ./src/foobar.o -o program.exe