C++ 函数中引用的未解析外部符号

C++ 函数中引用的未解析外部符号,c++,C++,我意识到,如果不向您提供大量的代码(我会尽量节省您的代码),这是一个很难回答的问题 本质上,我在类X中得到了这个错误,它包括类Y头。类Y头有三个getter定义 // Getters static ID3D10Device* PDevice(); static ID3D10Buffer* PBuffer(); static ID3D10Buffer* IBuffer(); 我得到了三个相同的错误,都发生在类X中。所以基本上错误是: 函数(类X的构造函数)中引用的未解析外部符号ID3D10Dev

我意识到,如果不向您提供大量的代码(我会尽量节省您的代码),这是一个很难回答的问题

本质上,我在类X中得到了这个错误,它包括类Y头。类Y头有三个getter定义

// Getters
static ID3D10Device* PDevice();
static ID3D10Buffer* PBuffer();
static ID3D10Buffer* IBuffer();
我得到了三个相同的错误,都发生在类X中。所以基本上错误是:

函数(类X的构造函数)中引用的未解析外部符号ID3D10Device*PDevice()


抱歉,这有点含糊。知道为什么会这样吗?我已经在谷歌上搜索过了,但对于这个错误,我只能做出一个有根据的猜测

确保将包含类Y的定义和实现的文件添加到项目中,以便链接器在Y.o文件中找到符号。首先,这是链接器错误。 此链接器错误意味着找不到损坏的名称PDevice et al

你能确保你有一个与定义相匹配的函数实现吗? 另外,可能很明显,但只需检查您是否实际有一个实现。 如果您的实现位于外部库中,请确保已在链接器中包含另一个库


希望有帮助

确保正确设置依赖项(添加lib文件)。在VisualStudio中,您可以通过属性->链接器->输入->其他依赖项来执行此操作。在文本框中,您现在可以输入.lib文件的名称。

这是链接器错误,而不是编译器错误。您是否正确地链接了D3D库?是否编译了这些函数的定义?是和是。所有这些代码以前都是有效的,但现在我把它分成了不同的类,我遇到了一些问题。是的,谢谢!问题是,像个白痴一样,我没有把ClassY::放在定义前面。