ho definito un file speciale: config.h
multipla definizione di ... errore di linker
Il mio progetto ha anche i file:
t.c, t.h
pp.c, pp.h
b.c b.h
l.cpp
e # include:
in tc:
#include "t.h"
#include "b.h"
#include "pp.h"
#include "config.h"
in bc:
#include "b.h"
#include "pp.h"
in pp.c:
#include "pp.h"
#include "config.h"
in l.cpp:
#include "pp.h"
#include "t.h"
#include "config.h"
non ci sono includere direttive miei file *.h
, solo in *.c
file . Ho definito questo in config.h:
const char *names[i] =
{
"brian", "stefan", "steve"
};
e hanno bisogno di tale matrice in l.cpp, TC, pp.c ma Im ottenendo questo errore:
pp.o:(.data+0x0): multiple definition of `names'
l.o:(.data+0x0): first defined here
t.o:(.data+0x0): multiple definition of `names'
l.o:(.data+0x0): first defined here
collect2: ld returned 1 exit status
make: *** [link] Error 1
devo includere guardie in ogni file *.h
Io uso nel mio progetto. Qualche aiuto per risolvere questo?
possibile duplicato di [errore di linker a definizione multipla dopo l'aggiunta di una funzione a un file di collegamento precedente] (http://stackoverflow.com/questions/3136616/multiple-definition-linker-error-after-adding-a- funzione-a-un-precedente-collegamento) –