PDA

View Full Version : [C++] Problema definizione multipla


Totti 88
11-10-2010, 18:45
Ciao a tutti.
Non capisco come mai il compilatore non mi riesce a compilare il seguente progetto c++:

FILE MAIN.C

#include "header.h"

int main(){

}


FILE HEADER.H

#ifndef HEADER_H
#define HEADER_H

int a;

#endif



FILE PROCEDURE.H

#include "header.h"



Mi da il seguente errore:

procedure.o: ( .bss+0x0): multiple definition of `a'
main.o: (.bss+0x0): first defined here
collect2: ld returned 1 exit status
make: *** [p_c_MT] Errore 1


Secondo voi cosa sbaglio nella struttra del progetto? :mc:
Grazie mille!

tuccio`
11-10-2010, 19:13
se vuoi che la variabile a sia globale e visibile da tutti i file object, devi definirla in un solo file, e "linkarla" usando


extern int a;


ad esempio puoi mettere in main.c


int a; // La vera e propria definizione della variabile a

int main() {
...
}


e poi nel file header.h


#ifndef HEADER_H
#define HEADER_H

extern int a;

#endif


cosė includendo il file header.h puoi usare la variabile a

Totti 88
11-10-2010, 19:28
Grazie mille ora va. :)