继昨天的glGenBuffers加入相关文件之后,其实编译还是有问题的,因为glew里面很多函数都是使用了宏定义。
因为必须在预处理中加入:
GLEW_MX
WIN32_LEAN_AND_MEAN
VC_EXTRA_LEAN
,开启相关的宏定义,注意我这里编译的ew是动态链接库,如果你编译的是静态链接库,
必须加入对应的静态宏 GLEW_STATIC
加入相关的文件头,注意头文件顺序,否则会提示相关结构体等没有定义.
#include <GL/glew.h>
#if defined(_WIN32)
#include <GL/wglew.h>
#elif !defined(__APPLE__) || defined(GLEW_APPLE_GLX)
#include <GL/glxew.h>
#endif
#include <gl/glut.h>
然后还要加入glewGetContext的宏定义
#ifdef GLEW_MX
GLEWContext _glewctx;
#define glewGetContext() (&_glewctx)
#ifdef _WIN32
WGLEWContext _wglewctx;
#define wglewGetContext() (&_wglewctx)
#elif !defined(__APPLE__) || defined(GLEW_APPLE_GLX)
GLXEWContext _glxewctx;
#define glxewGetContext() (&_glxewctx)
#endif
#endif
到此编译虽然可以正常了,但是运行时有些人可能会发现会发生异常。原因红宝书中没有加入初始化ew的代码,
最后加入glewInit();
到此一切正常了。
版权所有,禁止转载。