Informatiker Board (http://www.informatikerboard.de/board/index.php)
- Themengebiete (http://www.informatikerboard.de/board/board.php?boardid=1)
-- Sonstige Fragen (http://www.informatikerboard.de/board/board.php?boardid=25)
--- Frage zu Makefile und g++ (http://www.informatikerboard.de/board/thread.php?threadid=380)


Geschrieben von sax am 29.02.2008 um 14:05:

  Frage zu Makefile und g++

Hallo allerseits,

ich habe mal ne Makefile Frage

ich habe ein kleines C++ Projekt und moechte in
meinem dem Verzeichnis mit dem Source Code
auch nur den Source Code und kein .o dateien und sonstiges
haben. Ich benutze g++ +makefile. Ich benutze das Makefile unten.
Hat jemand ne Idee wie ich es hinbekomme das auch die .o Dateien
im buildfolder gespeichert werden ?

Vielen Dank schonmal.

CC = g++
CFLAGS = -c -O0 -g
LFLAGS = -g
buildfolder = /scratch/DEM/build

SRC = main.cc System.cc Particle.cc
OBJ = $(SRC:%.cc=%.o)

EXEC = DEM
DEPENDFILE = .depend


DEM: $(OBJ)
$(CC) -o $(buildfolder)/DEM $(OBJ) $(LFLAGS)
dep: $(SRC)
$(CC) -MM $(SRC) > $(DEPENDFILE)
-include $(DEPENDFILE)
%.o: %.cc
$(CC) $(CFLAGS) -o$(buildfolder)/$@ $<

.PHONY: clean
clean:
rm -rf *.o $(EXEC)



Geschrieben von ed209 am 29.02.2008 um 19:24:

 

Dazu musst du zwei Sachen ändern:

1. Wohin die Objektdateien beim compilieren gepackt werden.
2. Woher die Objektdateien beim linken geholt werden.

Bei meinem Projekt hab ich zweiteres so gelöst, daß ich die OBJ-Liste um den Output-Pfad erweitert habe:

Zitat:

OBJ = $(addprefix $(buildfolder),$(SRC:%.cc=%.o))


Weil er jetzt die Dateien woanders braucht, habe ich die Abhängigkeits-Regel auch entsprechend angepasst:

Zitat:

$(buildfolder)%.o: %.cc
$(CC) $(CFLAGS) -o$(buildfolder)/$@ $<


Vielleicht musst Du da noch ein bisschen dran rumspielen.

Gruß,
ED209



Geschrieben von sax am 03.03.2008 um 15:32:

 

Okay, Danke


Forensoftware: Burning Board, entwickelt von WoltLab GmbH