I zdefiniowano specjalny plik: config.h
Wiele definicji ... błędu łącznikowej
Mój projekt ma też pliki:
t.c, t.h
pp.c, pp.h
b.c b.h
l.cpp
i właczoną:
w tc:
#include "t.h"
#include "b.h"
#include "pp.h"
#include "config.h"
w bc:
#include "b.h"
#include "pp.h"
w pp.c:
#include "pp.h"
#include "config.h"
w l.cpp:
#include "pp.h"
#include "t.h"
#include "config.h"
istnieją nie obejmują dyrektyw w moich *.h
plików, tylko w *.c
plików . I to zdefiniowane w config.h:
const char *names[i] =
{
"brian", "stefan", "steve"
};
i trzeba ten tablicę w l.cpp TC, pp.c ale Im uzyskiwanie ten błąd:
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
mam to strażników w każdym pliku *.h
Używam w moim projekcie. Każda pomoc w rozwiązaniu tego problemu?
możliwy duplikat błędu [linker definicji wielokrotnej po dodaniu funkcji do pliku łączącego wcześniej] (http://stackoverflow.com/questions/3136616/multiple-definition-linker-error-after-addinga-a- funkcja do wcześniejszego łączenia) –