pierotofy (Admin)
Guru^2
Messaggi: 6230
Iscritto: 04/12/2003
|
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 il 27/01/2012 alle 16:41
|