Ошибка компоновщика Visual-C ++ - PullRequest
1 голос
/ 08 августа 2009

У меня есть класс MODEL, в котором находится public static int theMaxFrames. Класс определяется в своем собственном заголовочном файле. Доступ к theMaxFrames осуществляется классом в классе MODEL и одной функцией void set_up (), которая также находится в классе MODEL. Исходный файл Render.cpp содержит функцию, которая вызывает функцию в исходном файле Direct3D.cpp, которая, в свою очередь, вызывает функцию set_up () через объект MODEL. Это единственное соединение между этими двумя исходными файлами и максимальными кадрами.

Когда я пытаюсь скомпилировать свой код, я получаю следующие сообщения об ошибках:

1> Direct3D.obj: ошибка LNK2001: неразрешенный внешний символ "public: static int MODEL :: theMaxFrames" (? TheMaxFrames @ MODEL @@ 2HA)

1> Render.obj: ошибка LNK2001: неразрешенный внешний символ "public: static int MODEL :: theMaxFrames" (? TheMaxFrames @ MODEL @@ 2HA)

1> C: \ Users \ Byron \ Documents \ Visual Studio 2008 \ Projects \ xFileViewer \ Debug \ xFileViewer.exe: фатальная ошибка LNK1120: 1 неразрешенный внешний код

1 Ответ

2 голосов
/ 08 августа 2009

Это звучит очень похоже на то, что вы объявили theMaxFrames в классе, но вы не дали определения для него.

Если это так, вам нужно предоставить определение для этого в .cpp где-то.

, например

int MODEL::theMaxFrames;

Для этого вопроса есть запись в FAQ: члены с статическими данными .

...