die Verzeichnisstruktur meines C++ Projekt ist
alle CPP-Dateien Kompilieren Make-Datei unter MinGW mit
/..
makefile <- the makefile is in root
/include <- subdirectory that has to be included while compiling
/obj <- target place for all *.o and final executable
/src <- sources
Und meine aktuelle Make-Datei ist:
CC=g++
CFLAGS=-c -Wall -std=c++11
INC=-Iinclude
SRC=src
TGT=obj
all: myapp
myapp: myapp.o
$(CC) $(TGT)/myapp.o -o $(TGT)/myapp
myapp.o:
$(CC) $(CFLAGS) $(INC) $(SRC)/myapp.cpp -o $(TGT)/myapp.o
clean:
rm -rf $(TGT)
mkdir $(TGT)
Das für meine erste Datei gearbeitet. Ich bin ein kompletter Makefile-Neuling - bitte helfen Sie mir, alle Dateien unter dem Verzeichnis /src
zu kompilieren und sie mit einer ausführbaren Datei in /obj
Verzeichnis zu verknüpfen.
die Make-Datei hat unter Windows zu arbeiten, ich bin mit MinGW und MSYS
Kann der '-Idir' Teil parametriert werden? Ihre Lösung scheint prägnant zu sein. Zwei Dinge, die geändert werden sollten: Das make-Skript sollte sowohl die '* .o' als auch die endgültige ausführbare Datei in das TGT-Verzeichnis stellen ... – emesx
Was meinst du mit parametrisiert? Sie können es in eine separate Variable einfügen und diese Variable natürlich zu 'CXXFLAGS' hinzufügen. Siehe geänderte Antwort. –
@elmes Bitte versuchen Sie das modifizierte 'Makefile', das ich für das separate Zielverzeichnis angepasst habe. –