我很困惑。我见过使用glCreateShader()的示例程序,有些使用glewCreateShader()。
使用Windows Visual Studio 2010,我收到以下错误:
error LNK2019: unresolved external symbol _glCreateShader@
我正在链接以下库(所有32位):
sdl2.lib
sdl2main.lib
opengl32.lib
freeglut.lib
glew32.lib
freetype255.lib
我的#include语句如下所示:
#include <windows.h>
#include <glew.h>
#include <gl\gl.h>
#include <gl\glu.h>
#include <freeglut.h>
#include <SDL.h>
#define GL_GLEXT_PROTOTYPES
#define GL_SGIX_fragment_lighting
#include "SDL_opengl.h"
glCreateShader()不是标准的OpenGL函数,应该是opengl32.lib的一部分吗?
此功能只是链接时许多缺少OpenGL功能的功能之一。我有另一个链接很好的示例项目。它只使用GLEW,FreeGLUT,根本不包括SDL2。这个链接器问题可能与使用SDL2 ??
有关更新
我发现我必须包含GLEXT.lib以使其正常工作。下面的头文件包含似乎也可以工作,并且根据derhass的建议更整洁(即使用SDL_opengl.h而不是常规的gl.h):
#include <windows.h>
#include <glew.h>
#include "SDL_opengl.h"
#include <gl\glu.h>
#include <freeglut.h>