Oppure

Loading
25/01/12 15:36
Bonny
ecco l'ultima versione
CC=gcc
LDFLAGS=-g -Wall
OBJECTS=main.o graph.o airport.o edge.o coda.o heap.o tree.o
all: test
test: $(OBJECTS) 
     $(CC) $(LDFLAGS) -o test $(OBJECTS)
main.o: main.c graph.h tree.h 
     $(CC) -c main.c
graph.o: graph.c graph.h coda.h heap.h tree.h
     $(CC) -c graph.c
airport.o: airport.c graph.h
     $(CC) -c airport.c
edge.o: edge.c graph.h 
     $(CC) -c edge.c
coda.o: coda.c graph.h coda.h
     $(CC) -c coda.c
heap.o: heap.c graph.h heap.h
     $(CC) -c heap.c
tree.o: tree.c graph.h tree.h
     $(CC) -c tree.c
clean: rm -f test $(OBJECTS)


Allego anche il progetto se a qualcuno interessa...
Ultima modifica effettuata da Bonny 26/01/12 8:53
aaa
25/01/12 15:46
pierotofy
La sintassi e' sbagliata; riguardati la documentazione dei makefiles.

In generale:

"etichetta:" indica un target. Tutto quello che segue l'etichetta sulla stessa linea e' una dipendenza. Ad esempio:

"main.o: main.h main.cpp"

Indica che il target main.o e' dipendente da main.h e main.cpp.

Il comando da eseguire solitamente lo metti indentato sotto l'etichetta. Ad esempio:

main.o: main.h main.cpp
g++ -o main.o main.cpp

Ti posto questo esempio di un mio progetto, vedi se riesci ad adattarlo per le tue esigenze...

GCC=g++
CFLAGS=-c -g -Wall
LD=g++
LDFLAGS=-g -Wall
OBJECTS=DiskLinkedList.o HeaderNode.o Utils.o LinkedListNode.o

all: main

main: main.cpp $(OBJECTS)
    $(LD) $(LDFLAGS) -o main main.cpp $(OBJECTS)

DiskLinkedList.o: DiskLinkedList.cpp DiskLinkedList.h HeaderNode.o LinkedListNode.o Utils.o
    $(GCC) ${CFLAGS} -o DiskLinkedList.o DiskLinkedList.cpp

HeaderNode.o: HeaderNode.cpp HeaderNode.h
    $(GCC) ${CFLAGS} -o HeaderNode.o HeaderNode.cpp

LinkedListNode.o: LinkedListNode.cpp LinkedListNode.h
    $(GCC) ${CFLAGS} -o LinkedListNode.o LinkedListNode.cpp

Utils.o: Utils.cpp Utils.h
    $(GCC) ${CFLAGS} -o Utils.o Utils.cpp

clean:
    rm -f main $(OBJECTS)

Ultima modifica effettuata da pierotofy 27/01/12 15:41
Il mio blog: piero.dev