问题(链接、崩溃)
glew problems (linking, crashing)
我正在尝试在代码块中设置 glew(在 Windows 上)。我正在 link 静态地处理它。
问题是有两个 .lib 文件 glew32.lib
和 glew32s.lib
。当我 link glew32.lib
我有 undefined reference to ___glewGenBuffers
(或除 glewInit()
之外的任何类似功能)。当我 link 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;
}
知道我做错了什么吗?
仅当您使用库 glew32s.lib
的静态版本时才定义 GLEW_STATIC
。因此,如果您这样做,请转到编译器设置面板,并在其他选项中添加 -DGLEW_STATIC
.
另外,通过将 glew32s
添加到 linker 设置,确保您 link 正确编辑了库。
您还需要 link 使用 opengl32
打开 GL。
我正在尝试在代码块中设置 glew(在 Windows 上)。我正在 link 静态地处理它。
问题是有两个 .lib 文件 glew32.lib
和 glew32s.lib
。当我 link glew32.lib
我有 undefined reference to ___glewGenBuffers
(或除 glewInit()
之外的任何类似功能)。当我 link 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;
}
知道我做错了什么吗?
仅当您使用库 glew32s.lib
的静态版本时才定义 GLEW_STATIC
。因此,如果您这样做,请转到编译器设置面板,并在其他选项中添加 -DGLEW_STATIC
.
另外,通过将 glew32s
添加到 linker 设置,确保您 link 正确编辑了库。
您还需要 link 使用 opengl32
打开 GL。