我试图在codeblocks(在Windows上)设置glew . 我静静地链接它 . 问题是有两个.lib文件 glew32.lib
和 glew32s.lib
. 当我链接 glew32.lib
我有 undefined reference to ___glewGenBuffers
(或除了 glewInit()
之外的任何类似功能) . 当我链接 glew32s.lib
时,一切编译都很好,但程序崩溃(分段错误)与 glewInit()
一致 . 创建了Opengl上下文,定义了 #GLEW_STATIC
,从here下载了glew .
我的测试程序:
#include <iostream>
#define GLEW_STATIC
#include <GL/glew.h>
#include <GL/freeglut.h>
using namespace std;
void initGL()
{
glutInitDisplayMode(GLUT_DEPTH | GLUT_DOUBLE | GLUT_RGBA);
glutInitWindowPosition(0,0);
glutInitWindowSize(1920,1080);
}
int main(int argc, char **argv)
{
glutInit(&argc, argv);
initGL();
glutCreateWindow("TEST");
GLenum err=glewInit();
if (GLEW_OK != err)
{
cout<<glewGetErrorString(err)<<endl;
}
GLuint foo[2];
glGenBuffers(2,foo);
return 0;
}
有什么想法我做错了什么?
1 回答
仅当使用库的静态版本
glew32s.lib
时才定义GLEW_STATIC
. 因此,如果您这样做,请转到编译器设置面板,并添加到其他选项-DGLEW_STATIC
.还要确保通过将
glew32s
添加到链接器设置来正确链接lib .您还需要使用
opengl32
链接到openGL .