Ecco le mie due domande:organizzare progetto e specificare la directory per i file oggetto in Makefile
ora sto imparando a gestire il mio codice con CVS, e voglio solo fare un repository per i miei file C++, Solo script Makefile e bash e python, non i file oggetto e gli eseguibili. Così ho creato diverse sottodirectory nella directory del mio progetto: src, bin, script, risultati e dati. Ho messo i file C++ e Makefile sotto ~/myproject/src, bash e python scripts sotto ~/myproject/scripts e object ed eseguibili sotto ~/myproject/bin. Spero solo che i file sotto src e gli script vengano aggiornati tramite CVS. Mi chiedo come voi ragazzi organizzate i vostri progetti? Spero solo di seguire alcune buone abitudini
Da quando ho messo i miei file C++ e Makefile in ~/myproject/src e gli oggetti ed i file eseguibili in ~/myproject/bin, devo specificare le directory in Makefile. Ecco quello che sto facendo
Makefile:
...
BIN_DIR=/home/myproject/bin/
all: $(BIN_DIR)myexecutable TAGS
TAGS: *.cc *.h
etags --members --declarations -l c++ *.cc *.h
$(BIN_DIR)myexecutable: $(BIN_DIR)myobject.o
$(CXX) $(CXXFLAGS) -o [email protected] $^ $(LDFLAGS)
Makefile.depend: *.h *.cc Makefile
$(CXX) -M $(CXXFLAGS) *.cc > Makefile.depend
clean:
\rm -f $(BIN_DIR)myexecutable $(BIN_DIR)*.o Makefile.depend TAGS`
Tuttavia, questo darà errore
make: *** Nessuna regola per rendere bersaglio
/home/myproject/bin/myobject.o', needed by
/home/myproject/bin/myexecutable'.
Come specificare una directory diversa per oggetti e file eseguibili da file C++ in Makefile?
Grazie e saluti!
Perfavore indentate il vostro estratto dal Makefile di quattro spazi. Ciò gli darà la giusta formattazione e l'evidenziazione della sintassi. –
Sembra che ci sia un bug da qualche parte che impedisce di inserire il codice dopo una lista. Ho aggiunto "Makefile:" come soluzione. – AProgrammer