PDA

View Full Version : [c] ERRORE : redefinition of `struct uscita


mic85rm
24-01-2011, 03:09
Buonanotte a tutti,
questo è l'ennesimo problema che mi si sta ponendo...

ho creato un miotipo.h con questo codice


struct posizione{
int x;
int y;
struct posizione *next;
};

typedef struct posizione *Posizione;

struct uscita{
int x;
int y;
};






poi ho creato un ges.h


// Nome e posizione del file:
// ges.h
// Descrizione del contenuto del file:
// contiene le dichiarazioni extern delle funzioni che implementano le
// operazioni definite sul tipo di dato astratto "stack of integer"
//

extern int empty(Posizione);
extern int push(Posizione);
extern int top(Posizione);
extern int pop(Posizione);
extern void visualizza_entrata(Posizione );
extern char **alloca_matrice(int ,int );
extern int righe_labirinto();
extern int colonne_labirinto();
extern int percentuale_muri_labirinto();
extern void muri_interni(char **,int ,int ,int);
extern int mostra_labirinto(char **,int ,int );
extern int scrivi_muro( char **,int ,int );
extern int esplorato(Posizione ,char **,int ,int );
extern int vcieco(Posizione,char **);
extern int avanza(Posizione ,char **,int,int);
extern int incrocio(Posizione ,char **,int ,int );
extern struct uscita crea_uscita_labirinto(char **,int ,int );
extern Posizione crea_entrata_labirinto(char **,int ,int );
extern int exit1(Posizione ,struct uscita USC);


nel main pero' quando compilo ecco che succede..

[Linker error] undefined reference to `righe_labirinto'
[Linker error] undefined reference to `percentuale_muri_labirinto'
[Linker error] undefined reference to `alloca_matrice'
e per tutte le altre funzioni...
aiutooooooooooooo

FrancoBross
24-01-2011, 16:15
dovresti farci vedere un po di codice, perchè quello che hai scritto sembra corretto

bobbytre
24-01-2011, 20:37
nel file .h devi usare #ifndef in modo che venga incluso una volta soltanto

mic85rm
24-01-2011, 22:03
eccovi i file....provate a compilarli...

mic85rm
24-01-2011, 22:03
bobbytree grazie per la risposta...ma vedi tu stesso cosa succede...

FrancoBross
24-01-2011, 23:38
prova a compilare in questo modo

gcc tuocodice.c -L<percorso>

dove per <percorso> intendo il percorso della libreria nella quale sono contenute le definizioni di questa libreria...premetto che è un consiglio a naso quello che ti do. domani posso dare una occhiata al codice...

mic85rm
24-01-2011, 23:56
ragazzi ho risolto da solo

FrancoBross
25-01-2011, 11:25
come? qual'era il problema?