Ciao a tutti.
Ho un programma strutturato in questo modo.
ho i seguenti file:
relaxGenLatency.h
relaxGenLatency.C
main.C
main.C e relaxGenLatency.C includono relaxGenLatency.h
Uso poi una piccolissima utility scritta da me che serve per gestire gli indici degli archi
di un grafo completo. I file sono indexes.h e indexes.C. Sono, stati compilati insieme ad altre utilities e poi archiviati in un file libGMLPutils
relaxGenLatency include indexes.h
Tutto funzionava.
Ho deciso poi di arricchire la libreria con una nuova funzione che dato l'indice dell'arco calcola i nodi sorgente e destinazione. Per fare questo ho definito uno struct arco. Ecco il codice di indexes.h
#ifndef MAT_INTEX
___#define MAT_INDEX
#include <cmath>
// ricorda, in c++ questa è definizione di tipo
// QUESTA È LA DEFINIZIONE CHE MI CAUSA PROBLEMI
struct arco{
___int s;
___int d;
};
int offset(int h, int k, int nnodes);
int matIndex (int i, int j, int nnodes);
void matNodes(int index, int nnodes, arco * a);
#endif
Se compilo, ottengo il seguente errore:
g++4 -O3 -DIL_STD -Wall -msse2 -mfpmath=sse -I. -I/home/cplex/10.1.1/include -I/home/cplex/10.1.1/include -Iinclude -I/home/errico/gmlputils/include -c source/relaxGenLatency.C
/home/errico/gmlputils/include/indexes.h:6: error: redefinition of 'struct arco'
/home/errico/gmlputils/include/indexes.h:6: error: previous definition of 'struct arco'
make: *** [relaxGenLatency.o] Error 1
Eppure, usando un main.C che ho usato per debuggare la ibreria, funzionava tutto perfettamente!
Dove sbaglio?
Grazie,
f