0
#ifdef _WIN32
#define GLEW_STATIC
#include <GL/glew.h>
#include <GL/glu.h>
#else
...
#endif
#include <SDL2/SDL.h>
#include <box2d/box2d.h>

Everything, like glewInit, glDrawArrays..., worked fine before I started using glCreateShader, glShaderSource, glCompileShader, glAttachShader, glLinkProgram Now, the compiler shows me these errors:

>g++ -std=c++14 b.cpp -lbox2d -lmingw32 -lsdl2main -lsdl2 -lglew32 -lopengl32 -o b.exe

b.cpp:(.text+0xcff): undefined reference to `__glewCreateShader'
b.cpp:(.text+0xd50): undefined reference to `__glewShaderSource'
b.cpp:(.text+0xd78): undefined reference to `__glewCompileShader'
b.cpp:(.text+0xd88): undefined reference to `__glewCreateProgram'
b.cpp:(.text+0xd95): undefined reference to `__glewAttachShader'
b.cpp:(.text+0xdaf): undefined reference to `__glewLinkProgram'
collect2.exe: error: ld returned 1 exit status

I'm using glew 1.13.0 Win32 and SDL2-i686-w64-mingw32. What should I do?

hjjg200
  • 335
  • 2
  • 11

2 Answers2

3

You may have to link against -lGLEW instead of -lglew32 since you are using MinGW.

user6412786
  • 208
  • 1
  • 6
0

Well, this did the job.

#ifdef _WIN32
#define GLEW_STATIC
#include "glew.c"   //I've brought glew.c from glew source folder
#else
...
#endif
...
hjjg200
  • 335
  • 2
  • 11