我正在尝试使用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'C:/Users/dduck/Desktop/glew/glew.c:7539:undefined reference towglGetProcAddress@4' C:/Users/dduck/Desktop/glew/glew.c:7540: undefined reference to
wglGetProcAddress @ 4'C:/Users/dduck/Desktop/glew/glew.c:7541:未定义引用wglGetProcAddress@4' C:/Users/dduck/Desktop/glew/glew.c:7542: undefined reference to
wglGetProcAddress @ 4'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'的更多未定义引用:C:/Users/dduck/Desktop/glew/glew.c:13470:未定义引用glGetString@4' C:/Users/dduck/Desktop/glew/glew.c:13530: undefined reference to
glGetIntegerv @ 8' 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'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'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'C:/Users/dduck/Desktop/glew/glew.c:15987:undefined引用wglGetProcAddress@4' C:/Users/dduck/Desktop/glew/glew.c:15988: undefined reference to
wglGetProcAddress @ 4'C:/Users/dduck/Desktop/glew/glew.c:15989:undefined引用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'跟随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'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'C:/Users/dduck/Desktop/glew/glew.c:16487:未定义引用wglGetProcAddress@4' C:/Users/dduck/Desktop/glew/glew.c:16495: undefined reference to
wglGetCurrentDC @ 0'colle2.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'|
我不知道你是否已经这样做了,但要确保在链接器中链接这些文件:
glu32
glew32
opengl32
所以,我知道你想使用glew32静态版本,但首先要确保动态版本正常工作。只需将glew的.dll文件放入包含可执行文件的文件夹中即可。如果它不起作用,请确保glews include文件夹位于编译器包含文件夹中(idk为什么,它就像那样)。