Ich bin neu mit Gcc in Ubuntu, also versuche ich ein Makefile zu erstellen. Mein Projektordner heißt innerhalb dieses Ordners "Projekt". Ich habe drei weitere Ordner: Quellen, Header, Objekte (leer).Makefile mit Dateien in verschiedenen Verzeichnissen
Mein Makefile sollte in der Lage sein, die Objektdateien im Ordner "Objekte" zu erstellen. Ich möchte jedoch meine ausführbare Datei und Makefile im Hauptordner: "Projekt", dann kann ich die ausführbare Datei und die Objektdateien reinigen. Wie kann ich das Programm einschließlich dieser Ordner kompilieren? Dies ist mein Makefile als Beispiel. Der Ordner "Projekt" befindet sich in meinem Home-Ordner.
CFLAGS= -ansi -pedantic -Wall -c
all: project
project: ./objects/main.o ./objects/factorial.o ./objects/gcd.o ./objects/greatestNumber.o ./objects/primeNumbers.o
gcc -o project ./objects/main.o ./objects/factorial.o ./objects/gcd.o ./objects/greatestNumber.o ./objects/primeNumbers.o
main.o: ./sources/main.c
gcc $(CFLAGS) ./sources/main.c
factorial.o: ./sources/factorial.c ./headers/factorial.h
gcc $(CFLAGS) ./sources/factorial.c
gcd.o: ./sources/gcd.c ./headers/gcd.h
gcc $(CFLAGS) ./sources/gcd.c
greatestNumber.o: ./sources/greatestNumber.c ./headers/greatestNumber.h
gcc $(CFLAGS) ./sources/greatestNumber.c
primeNumbers.o: ./sources/primeNumbers.c ./headers/primeNumbers.h
gcc $(CFLAGS) ./sources/primeNumbers.c
clean:
rm -f ./objects/main.o ./objects/factorial.o ./objects/gcd.o ./objects/greatestNumber.o ./objects/primeNumbers.o project
Dank
Sind Sie sicher, dass 'main.o' nicht von Kopfzeilen abhängt? – aschepler
es hängt von gcd.h ab, faktorial.h, greatestNumber.h, primeNumbers.h – user3654532