Ошибка компоновщика при использовании статических членов

Я использую Qt 4.7 и Cmake 2.8.3 с g ++ 4.2.1 на Mac OS X.

Я получаю странную ошибку компоновщика при использовании статических или глобальных переменных в одном из моих файлов. Вот ошибка:

ld: duplicate symbol ColorTrail::calculateColorUniformLocation        in CMakeFiles/GLBall.dir/src/DesktopMain.cpp.o and CMakeFiles/GLBall.dir/src/ColorTrail.cpp.o
collect2: ld returned 1 exit status

calcColorUniformLocation является статическим членом класса ColorTrail ... но он даже не используется в DesktopMain.cpp!

Вот что я пробовал: переименование переменной не решает проблему. Перемещение переменной из класса и просто превращение ее в простую глобальную переменную также не исправляет ее

Файл ColorTrail.h:

#ifndef COLORTRAIL
#define COLORTRAIL 9

#include "GlobalConstants.h"
#include <vector>
using namespace std;


class ColorTrail
{
private:
    //note that this is NOT a Q_OBJECT

    static GLint calculateColorUniformLocation;

    //omitted for brevity
};

GLint ColorTrail::calculateColorUniformLocation;


#endif

DesktopMain.cpp использует класс ColorTrail, но не статически и никогда не ссылается на переменную.

У кого-нибудь есть идеи, что может быть не так / была похожая проблема с Qt?

Ответы на вопрос(2)

Ваш ответ на вопрос