我尝试使用Code :: Blocks安装GLEW。以下是我安装和使用它所做的工作:
glew-2.0.0.zip\glew-2.0.0\include\GL
中的所有文件复制到C:\Program Files (x86)\CodeBlocks\MinGW\include\GL
。glew-2.0.0.zip\glew-2.0.0\src
中添加了三个.c文件。然后我点击了Build并得到了一个我复制到C:\Program Files (x86)\CodeBlocks\MinGW\lib
的libglew.a文件。GLEW_STATIC
,如下所示:
C:\Program Files (x86)\CodeBlocks\MinGW\lib\libglew.a
。#include <GL/glew.h>
以包含GLEW。GLenum initialisationGLEW(glewInit());
(我已经初始化了SDL和OpenGL)。问题在于,当我尝试编译项目时,出现以下错误:
C:\ Program Files(x86)\ CodeBlocks \ MinGW \ lib \ libglew.a(glew.o):在函数
glewInit_GL_VERSION_1_3': C:/Users/dduck/Desktop/glew/glew.c:7538: undefined reference to
wglGetProcAddress @ 4&#39; C:/Users/dduck/Desktop/glew/glew.c:7539:对wglGetProcAddress@4' C:/Users/dduck/Desktop/glew/glew.c:7540: undefined reference to
wglGetProcAddress @ 4&#39;的未定义引用 C:/Users/dduck/Desktop/glew/glew.c:7541:未定义引用wglGetProcAddress@4' C:/Users/dduck/Desktop/glew/glew.c:7542: undefined reference to
wglGetProcAddress @ 4&#39; C:\ Program Files(x86)\ CodeBlocks \ MinGW \ lib \ libglew.a(glew.o):C:/Users/dduck/Desktop/glew/glew.c:7543:对wglGetProcAddress@4' follow C:\Program Files (x86)\CodeBlocks\MinGW\lib\libglew.a(glew.o): In function
的更多未定义引用glewContextInit&#39 ;: C:/Users/dduck/Desktop/glew/glew.c:13470:未定义引用glGetString@4' C:/Users/dduck/Desktop/glew/glew.c:13530: undefined reference to
glGetIntegerv @ 8&#39; C:/Users/dduck/Desktop/glew/glew.c:13539:对wglGetProcAddress@4' C:/Users/dduck/Desktop/glew/glew.c:13593: undefined reference to
_ glewInit_GL_VERSION_1_2&#39;的未定义引用 C:\ Program Files(x86)\ CodeBlocks \ MinGW \ lib \ libglew.a(glew.o):在函数glewInit_WGL_3DL_stereo_control': C:/Users/dduck/Desktop/glew/glew.c:15973: undefined reference to
wglGetProcAddress @ 4&#39; C:\ Program Files(x86)\ CodeBlocks \ MinGW \ lib \ libglew.a(glew.o):在函数glewInit_WGL_AMD_gpu_association': C:/Users/dduck/Desktop/glew/glew.c:15986: undefined reference to
wglGetProcAddress @ 4&#39; C:/Users/dduck/Desktop/glew/glew.c:15987:对wglGetProcAddress@4' C:/Users/dduck/Desktop/glew/glew.c:15988: undefined reference to
wglGetProcAddress @ 4&#39;的未定义引用 C:/Users/dduck/Desktop/glew/glew.c:15989:未定义引用wglGetProcAddress@4' C:\Program Files (x86)\CodeBlocks\MinGW\lib\libglew.a(glew.o):C:/Users/dduck/Desktop/glew/glew.c:15990: more undefined references to
wglGetProcAddress @ 4&#39;跟随 C:\ Program Files(x86)\ CodeBlocks \ MinGW \ lib \ libglew.a(glew.o):在函数wglewGetExtension@4': C:/Users/dduck/Desktop/glew/glew.c:16473: undefined reference to
wglGetCurrentDC @ 0&#39; C:\ Program Files(x86)\ CodeBlocks \ MinGW \ lib \ libglew.a(glew.o):在函数wglewInit@0': C:/Users/dduck/Desktop/glew/glew.c:16486: undefined reference to
wglGetProcAddress @ 4&#39; C:/Users/dduck/Desktop/glew/glew.c:16487:对wglGetProcAddress@4' C:/Users/dduck/Desktop/glew/glew.c:16495: undefined reference to
wglGetCurrentDC @ 0&#39;的未定义引用 collect2.exe:错误:ld返回1退出状态
它说这些错误存在于C:\Users\dduck\Desktop\glew\glew.c
文件中,这是我为了获取libglew.a而编译的文件之一,但它们来自我的C ++项目,而不是我尝试编译libglew.a时。我设法编译libglew.a没有任何问题。因此,我收到此错误的项目不包含C:\Users\dduck\Desktop\glew\glew.c
,它只包含C:\Program Files (x86)\CodeBlocks\MinGW\lib\libglew.a
。更奇怪的是,我试图删除C:\Users\dduck\Desktop\glew\glew.c
,编译器仍然说该文件中存在错误。我还尝试下载已编译的libglew.a here版本并使用它而不是我编译的版本。然后发生了一些更奇怪的事情:编译器说文件C:\Users\pb\Documents\dotA\glew.c
中存在一个错误(与我的libglew.a版本相同),这个文件在我的计算机上从未存在过。
我做错了什么?为什么我在不属于项目的文件中出现错误,有时甚至不存在?我该怎么做才能解决它?
修改
我还尝试在链接器设置中添加opengl32
,然后我只收到一个错误:
C:\ Users \ dduck \ Desktop \ glew \ glew.c | 13593 |未定义引用`_glewInit_GL_VERSION_1_2&#39; |
答案 0 :(得分:0)
我不知道您是否已完成操作,但是请确保在链接器中链接了以下文件:
glu32
glew32
opengl32
因此,我知道您想使用glew32静态版本,但首先请确保动态版本正在运行。只要将glew的.dll文件与可执行文件一起放入文件夹即可。如果不起作用,请确保在编译器的include文件夹中包含glews include文件夹(idk为什么,它只是那样工作)。