fastmagister
16-05-2007, 20:01
Ciao a tutti,
credo che il mio problema sia più difficile da spiegare che da affrontare, comunque, la situazione è questa:
ho sviluppato diverse funzioni in C (poniamo FUN_A, FUN_B,..., FUN_X), ognuna in un file diverso (FILE_A, FILE_B, ..., FILE_X), ed ho creato un header file con i prototipi di queste funzioni. Ho quindi inserito ognuno dei file creati in una diversa cartella (poniamo DIR_A, DIR_B, ..., DIR_X) insieme con una copia del file header e con un file .c contenente un main che richiami esclusivamente la funzione in quella cartella. Per ogni cartella ho creato un makefile che compila correttamente il programma in essa.
Detto questo, la questione è: se spostassi tutti i file con le funzioni in un unica cartella insieme al file header (poniamo /home/mionome/SORGENTI) ed avessi in un'altra cartella (poniamo /home/mionome/TEST) un file .c con un main che richiama una di queste funzioni, come dovrei variare il makefile per avere ancora una corretta compilazione?
Vi posto qui di seguito uno dei makefile funzionanti fin quando funzione, programma principale ed header sono tutti nella stessa cartella:
OBJ= FUN_A.o TEST.o
main: $(OBJ)
g++ -o main $(OBJ) -lm -lg2c
.c.o:
cc -c -O2 $<
.f.o:
f77 -c -O2 $<
clean:
rm *.o main
In pratica, cosa devo aggiungere al makefile per dirgli dove sono tutte le risorse di cui ha bisogno?
Qualcuno mi diceva che occorre inserire qualcosa del tipo $(PATH)/SORGENTI o $(PATH)/TEST ma come...??
Spero di essermi fatto capire, grazie 100...
credo che il mio problema sia più difficile da spiegare che da affrontare, comunque, la situazione è questa:
ho sviluppato diverse funzioni in C (poniamo FUN_A, FUN_B,..., FUN_X), ognuna in un file diverso (FILE_A, FILE_B, ..., FILE_X), ed ho creato un header file con i prototipi di queste funzioni. Ho quindi inserito ognuno dei file creati in una diversa cartella (poniamo DIR_A, DIR_B, ..., DIR_X) insieme con una copia del file header e con un file .c contenente un main che richiami esclusivamente la funzione in quella cartella. Per ogni cartella ho creato un makefile che compila correttamente il programma in essa.
Detto questo, la questione è: se spostassi tutti i file con le funzioni in un unica cartella insieme al file header (poniamo /home/mionome/SORGENTI) ed avessi in un'altra cartella (poniamo /home/mionome/TEST) un file .c con un main che richiama una di queste funzioni, come dovrei variare il makefile per avere ancora una corretta compilazione?
Vi posto qui di seguito uno dei makefile funzionanti fin quando funzione, programma principale ed header sono tutti nella stessa cartella:
OBJ= FUN_A.o TEST.o
main: $(OBJ)
g++ -o main $(OBJ) -lm -lg2c
.c.o:
cc -c -O2 $<
.f.o:
f77 -c -O2 $<
clean:
rm *.o main
In pratica, cosa devo aggiungere al makefile per dirgli dove sono tutte le risorse di cui ha bisogno?
Qualcuno mi diceva che occorre inserire qualcosa del tipo $(PATH)/SORGENTI o $(PATH)/TEST ma come...??
Spero di essermi fatto capire, grazie 100...