我正在尝试在代码块中设置glew(在Windows上)。我静静地链接它。
问题是有两个.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;
}
任何想法我做错了什么?
答案 0 :(得分:0)
只有在使用库GLEW_STATIC
的静态版本时才定义glew32s.lib
。因此,如果您这样做,请转到编译器设置面板,并添加-DGLEW_STATIC
。
还要确保通过将glew32s
添加到链接器设置来正确链接lib。
您还需要使用opengl32
链接到openGL。