Я определил специальный файл: config.h
В моем проекте также есть файлы:
t.c, t.h
pp.c, pp.h
b.c b.h
l.cpp
и # включает:
в t.c:
#include "t.h"
#include "b.h"
#include "pp.h"
#include "config.h"
в b.c:
#include "b.h"
#include "pp.h"
в pp.c:
#include "pp.h"
#include "config.h"
в l.cpp:
#include "pp.h"
#include "t.h"
#include "config.h"
нет никаких директив include в моих файлах *.h
, только в файлах *.c
. Я определил это в config.h:
const char *names[i] =
{
"brian", "stefan", "steve"
};
и нужен этот массив в l.cpp, t.c, pp.c, но Im получает эту ошибку:
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
У меня есть защита в каждом файле *.h
, который я использую в своем проекте. Любая помощь в решении этой проблемы?