You are not logged in.

  • Login

1

Saturday, November 18th 2006, 12:12am

Noch einmal wegen Makefiles...

Hi!
Ich hab auch eine Frage zu Makefiles unter Windows, jedoch geht es um kompilieren mehrerer Dateien aus verschiedenen Verzeichnissen.
Bisher hatte ich alle Quellcode-Dateien im selben Verzeichnis und alles lief Problemlos, aber aufgrund eines größeren Projektes möchte ich diese nun Aufteilen.

Beispiel:

ActionScript Quellcode

1
2
3
4
5
/bin - Verzeichnis vom Compiler
                          |
                       MAKEFILE   /Levels      /Enemys
                                      |            |
                                 level1.cpp    enemy1.cpp

Im Bin-Verzeichnis befindet sich also das Makefile und 2 Ordner mit CPP-Dateien.

Das Makefile wenn alles im selben Verzeichnis wäre sah so aus:

ActionScript Quellcode

1
2
3
4
5
6
CPP=g++
EXE=Test
OBJECTS=  level1.o  enemy1.o  ${EXE}.o
 
${EXE}: ${OBJECTS}
	${CPP} -o ${EXE} ${OBJECTS}


Hoffentlich hat hier jemand sowas schonmal gemacht. Meine Suche bei google und so war bisher erfolglos...
:roll:

2

Sunday, November 19th 2006, 11:22pm

also ... habs jetz alleine rausbekommen.
Ist ganz einfach, man muss es halt nur wissen...

Hier steht alles:
http://www.gnu.org/software/make/manual/make.html

Man erstellt eine Variable namens VPATH die die Verzeichnisse enthält, wo noch gesucht werden soll...
Hier jetzt das makefile:

C Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#--------------------------------------------------- 
#Variablen definieren: 
#--------------------------------------------------- 
CPP=g++ 
CPPFLAGS=-mwindows -D__GTHREAD_HIDE_WIN32API 
LIBS=-lalleg 
EXE=Test 
VPATH = Levels : Enemys      # das ist die magische Zeile! 
 
#--------------------------------------------------- 
#Alle Objekt-Dateien zusammen: 
#--------------------------------------------------- 
OBJECTS=  level1.o  enemy1.o  ${EXE}.o 
 
#--------------------------------------------------- 
Die EXE-Datei wird erzeugt: 
#--------------------------------------------------- 
${EXE}: ${OBJECTS} 
   ${CPP} -o ${EXE} ${OBJECTS} ${CPPFLAGS} ${LIBS}

Similar threads

Social bookmarks