Durante la compilazione di un programmino in C, il compilatore gcc mi dà in output questo errorino:
Codice:
Codice: Seleziona tutto
gcc -o main_mate main_mate.c lib.a
lib.a(lib_mate.o):(.data+0x0): multiple definition of `LIB_SIMBOLI'
/tmp/ccwhL9qR.o:(.data+0x0): first defined here
collect2: ld returned 1 exit status
- main_mate.c = programmino dove viene lanciato il programma;
- lib_mate.h = libreria che contiene strutture e dichirazione funzioni;
- lib_mate.c = sorgente dove viene scritto il corpo delle funzioni della libreria:
Per la compilazione faccio questi passaggi:
1) gcc -c -o lib_mate.o lib_mate.c
2) ar r lib.a lib_mate.o
3) gcc -c -o main_mate main_mate.c
4) gcc -o main_mate main_mate.c lib.a
L'errore significa che ci sono più definizioni di `LIB_SIMBOLI` ma quest'ultimo è stato definito solamente nel sorgente "lib_mate.h".
Cosa potrebbe essere allora???