未解析的外部符号(OpenGL和c ++)

Cos*_*o D 3 c++ opengl linker

好的,所以我正在写一个小项目,没什么复杂的,它只有几个类.正如标题所暗示的,它使用OpenGL.目前,没有"真正的"主要功能.我已经使用glew.h包含gl*函数调用,并添加到链接器输入glew32.lib.

然而,它给了我这个:

错误2错误LNK2019:未解析的外部符号_ imp _glBindTexture @ 8在函数"public:void __thiscall Texture2D :: Bind(unsigned int)"中引用(?Bind @ Texture2D @@ QAEXI @ Z)Texture.obj Licenta

...以及关于OpenGL纹理函数的许多其他未解决的外部符号错误.但它没有抱怨这个:

glBindVertexArray(m_VAO);
        glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, m_Buffers[INDEX_BUFFER]);
        glBufferData(GL_ELEMENT_ARRAY_BUFFER, sizeof(Indices[0]) * Indices.size(), &Indices[0], GL_STATIC_DRAW);
Run Code Online (Sandbox Code Playgroud)

或这个:

glDrawElementsBaseVertex(GL_TRIANGLES, 
                             m_Entries[i].NumIndices, 
                             GL_UNSIGNED_INT, 
                             (void*)(sizeof(unsigned int) * m_Entries[i].BaseIndex), 
                             m_Entries[i].BaseVertex);
Run Code Online (Sandbox Code Playgroud)

那么,这笔交易是什么?如果一个gl*函数调用链接失败,那么ALL不会失败吗?

Vik*_*pov 11

glBindTexture是一个"核心"OpenGL功能.此函数驻留在opengl32.dll中,因此只需将opengl32.lib添加到链接器输入即可.

glDrawElementsBaseVertex和glBindVertexArray是扩展,GLEW将它们定义为函数指针(在运行时完成动态后期绑定),因此没有"未解析的符号"错误.