Файл инклудится больше одного раза, что в принципе нормально.
Проблема с определением переменньІх:
1. Константная переменная должна бьІть определена в заголовочнике так:
const char * word = "abcde"; // WRONG
static const char * word = "abcde"; // RIGHT
Теперь на етапе компиляции компилер заюзает для каждого из cpp-файлов свою константу в пределах етого файла (что и означает слово
static), но в результате оптимизаций статические данньІе в коде будут одни.
2. Неконстантная переменная должна бьІть только обьявлена в заголовочнике с помощью ключевого слова
extern, определена же - в cpp-файле:
QString bla_bla_bla; // WRONG
extern QString bla_bla_bla; // RIGHT
В одном и только в одном заголовочнике должно бьІть её определение, иначе линкер честно обругается:
один из cpp