Sie schrieb:
Also, wenn ich hatte nur eine Header-Datei und ein CPP ich schreiben würde:
Func1.o: Header1.h Func1.cpp; gcc -c Func1.cpp Header1.h
Nein, würden Sie nicht. Sie fügen niemals eine Header-Datei in die Kompilierzeile ein: Der Compiler findet die Header-Datei aufgrund von #include
Anweisungen in der Quelldatei.
Sie würden schreiben:
all: Func1.o Func2.o
Func1.o: Header1.h Func1.cpp
gcc -c Func1.cpp
Func2.o: Header1.h Func2.cpp
gcc -c Func2.cpp
Dies ist jedoch nicht wirklich eine gute Make-Datei. Zuerst haben Ihre Quelldateien eine .cpp
-Erweiterung, was bedeutet, dass es sich um C++ - Dateien handelt, aber Sie verwenden gcc
, einen C-Compiler. Wenn Ihre Dateien C++ - Dateien sind, sollten Sie g++
als Compiler verwenden.
Zweitens, machen Sie bereits wissen, wie man eine Objektdatei aus einer Quelldatei erstellt, so dass Sie nicht einmal eine Regel schreiben müssen.
Ihr Make-Datei kann einfach sein:
CXX = g++
all: Func1.o Func2.o
Func1.o: Header1.h
Func2.o: Header1.h
und das ist alles, was Sie brauchen.