请教:error LNK2001: unresolved external symbol __imp____glewBufferData
#include <glew.h>
#include <glut.h>
#include <glext.h>
#include "stdafx.h"
#define VERTICES 0
#define INDICES 1
#define NUM_BUFFERS 2
//#define BUFFER_OFFSET(bytes)((GLubyte*)NULL+(bytes))
int main(int argc, char* argv[])
{
GLuint buffers[NUM_BUFFERS];
GLfloat vertices[][3]={
{-1.0,-1.0,-1.0},
{1.0,-1.0,-1.0},
{1.0,1.0,-1.0},
{-1.0,1.0,-1.0},
{-1.0,-1.0,1.0},
{1.0,-1.0,1.0},
{1.0,1.0,1.0},
{-1.0,1.0,1.0}
};
GLubyte indices[][4]={
{0,1,2,3},
{4,7,6,5},
{0,4,5,1},
{3,2,6,7},
{0,3,7,4},
{1,5,6,2}
};
glGenBuffers(NUM_BUFFERS,buffers);
glBindBuffer(GL_ARRAY_BUFFER,buffers[VERTICES]);
glBufferData(GL_ARRAY_BUFFER,sizeof(vertices),vertices,GL_STATIC_DRAW);
//glVertexPointer(3,GL_FLOAT,0,BUFFER_OFFSET(0));
glVertexPointer(3,GL_FLOAT,0,vertices);
glEnableClientState(GL_VERTEX_ARRAY);
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER,buffers[INDICES]);
glBufferData(GL_ELEMENT_ARRAY_BUFFER,sizeof(indices),indices,GL_STATIC_DRAW);
//glDrawElements(GL_QUADS,24,GL_UNSIGNED_BYTE,BUFFER_OFFSET(0));
glDrawElements(GL_QUADS,24,GL_UNSIGNED_BYTE,indices);
return 0;
}
执行后结果:
Linking...
p56.obj : error LNK2001: unresolved external symbol __imp____glewBufferData
p56.obj : error LNK2001: unresolved external symbol __imp____glewBindBuffer
p56.obj : error LNK2001: unresolved external symbol __imp____glewGenBuffers
Debug/p56.exe : fatal error LNK1120: 3 unresolved externals
Error executing link.exe.
Creating browse info file...
p56.exe - 4 error(s), 0 warning(s)
glew是1.5版本的,在VC6.0下也把库glew和glut的库添加进去了,请问是这么回事啊?
[解决办法]
从报错来看,应该是添加库的时候没有添加对。我不知道你怎样在vc6下把相关库添加进去的,不过你可以尝试使用如下的预编译命令:
#pragma comment(lib,"XXX.lib") // XXX.lib 表示上述报错函数所在的lib文件。
[解决办法]
#include <glew.h>
#include <glut.h>
这个顺序没错,但是感觉既然是使用glew就没有必要使用glext(除非你使用几个扩展中存在,
但glew暂时没有的API:就是指glGetProgramLocalParameterIivNV...这几个API)