我有一个名为MODEL的类,公共(public)static intTheMaxFrames驻留在其中。该类在其自己的头文件中定义。 theMaxFrames由MODEL类中的一个类和一个无效的set_up()函数访问,该函数也位于MODEL类中。 Render.cpp源文件包含一个函数,该函数调用Direct3D.cpp源文件中的函数,该文件又通过MODEL对象调用set_up()函数。这是这两个源文件和theMaxFrames之间的唯一连接。

当我尝试编译代码时,出现以下错误消息:

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个未解决的外部组件

最佳答案

听起来非常像您在类中声明了theMaxFrames,但尚未提供其定义。

如果是这种情况,则需要在.cpp中的某个位置为其提供定义。

例如

int MODEL::theMaxFrames;

这个问题有一个FAQ条目:static data members

关于c++ - Visual C++链接器错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1248941/

10-12 16:57