2016-06-02 9 views
-1
#ifdef _WIN32 
#define GLEW_STATIC 
#include <GL/glew.h> 
#include <GL/glu.h> 
#else 
... 
#endif 
#include <SDL2/SDL.h> 
#include <box2d/box2d.h> 

Alles, wie glewInit, glDrawArrays..., hat gut funktioniert, bevor ich mit glCreateShader, glShaderSource, glCompileShader, glAttachShader, glLinkProgram nun begonnen, der Compiler zeigt mir diese Fehler:undefined reference to `__glewCreateShader`

>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 

Ich verwende glew 1.13.0 Win32 und SDL2-i686-w64-mingw32. Was soll ich machen?

+1

Haben Sie vergessen, tatsächlich mit GLEW zu verbinden? – immibis

+0

@immibis Was soll eigentlich mit GLEW verlinken? Ist nicht -lglew32 linking glew? – hjjg200

Antwort

0

Sie müssen möglicherweise gegen -lGLEW statt -lglew32 verknüpfen, da Sie MinGW verwenden.

-1

Nun, das hat seinen Zweck erfüllt.

#ifdef _WIN32 
#define GLEW_STATIC 
#include "glew.c" //I've brought glew.c from glew source folder 
#else 
... 
#endif 
... 
+1

Sofern Sie nicht wirklich wissen, was Sie tun, sollten Sie * niemals * C-Dateien direkt einschließen. –

Verwandte Themen