La struttura di directory del mio C++ progetto è
compilare tutti i file CPP utilizzando makefile in MinGW
/..
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
E il mio makefile corrente è:
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)
questo ha lavorato per il mio primo file. Sono un novizio completo di makefile - per favore aiutami a compilare tutti i file sotto la directory /src
e collegarli a un eseguibile nella directory /obj
.
il makefile deve lavorare sotto Windows, io sto usando MinGW e MSYS
È possibile parametrizzare la parte '-Idir'? La tua soluzione sembra concisa. Due cose da cambiare: il make-script dovrebbe mettere sia il file '* .o' che l'eseguibile finale nella directory TGT ... – emesx
Cosa intendi con parametrizzato? Puoi metterlo in una variabile separata e aggiungere questa variabile a 'CXXFLAGS', ovviamente. Vedi risposta modificata. –
@elmes Si prega di provare il 'Makefile' modificato, ho regolato per la directory di destinazione separata. –