Définition de plusieurs de linker erreur ...

J'ai défini un fichier spécial: config.h

Mon projet a également des fichiers:

t.c, t.h
pp.c, pp.h
b.c b.h
l.cpp

et #comprend:

dans t.c:

    #include "t.h"
    #include "b.h"
    #include "pp.h"
    #include "config.h"

dans b.c:

    #include "b.h"
    #include "pp.h"

en pp.c:

    #include "pp.h"
    #include "config.h"

dans l.cpp:

    #include "pp.h"
    #include "t.h"
    #include "config.h"

il n'existe pas de directives include dans mon *.h fichiers, seulement dans *.c fichiers. J'ai défini cette config.h:

const char *names[i] =
        {
            "brian", "stefan", "steve"
        };

et ont besoin de ce tableau dans l.cpp t.c, pp.c mais Im obtenir cette erreur:

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

J'ai inclure des gardes dans chaque *.h fichier que j'utilise dans mon projet. Tout aider à résoudre ce problème?

InformationsquelleAutor mazix | 2013-07-20