构建成功,但在尝试运行程序时出现GLEW错误

时间:2014-03-31 01:18:02

标签: c++ opengl codeblocks glew

我正在尝试编译并运行C ++& CodeBlocks 13.12中的OpenGL(带GLEW)程序。

代码构建成功,但是当我想运行它时,它会给我错误(未找到入口点)说:

  

程序入口点glewInit @ 0无法位于   动态链接库glew32.dll。

glew32.dll位于System32文件夹中(我使用的是Win7 x64)。

编辑:

我得到的当前错误是:

||=== Build: Debug in tutorial2cpp (compiler: GNU GCC Compiler) ===|
obj\Debug\glew.o||In function `glewInit_GL_VERSION_1_2':|
N:\projekticpp\OpenGL\samhocevartutorial\tutorial2cpp\glew.c|3233|undefined reference to `wglGetProcAddress@4'|
N:\projekticpp\OpenGL\samhocevartutorial\tutorial2cpp\glew.c|3234|undefined reference to `wglGetProcAddress@4'|
N:\projekticpp\OpenGL\samhocevartutorial\tutorial2cpp\glew.c|3235|undefined reference to `wglGetProcAddress@4'|
N:\projekticpp\OpenGL\samhocevartutorial\tutorial2cpp\glew.c|3236|undefined reference to `wglGetProcAddress@4'|
obj\Debug\glew.o||In function `glewInit_GL_VERSION_1_3':|
N:\projekticpp\OpenGL\samhocevartutorial\tutorial2cpp\glew.c|3253|undefined reference to `wglGetProcAddress@4'|
obj\Debug\glew.o:N:\projekticpp\OpenGL\samhocevartutorial\tutorial2cpp\glew.c|3254|more undefined references to `wglGetProcAddress@4' follow|
obj\Debug\glew.o||In function `glewGetExtension@4':|
N:\projekticpp\OpenGL\samhocevartutorial\tutorial2cpp\glew.c|9475|undefined reference to `glGetString@4'|
obj\Debug\glew.o||In function `glewContextInit':|
N:\projekticpp\OpenGL\samhocevartutorial\tutorial2cpp\glew.c|9495|undefined reference to `glGetString@4'|
N:\projekticpp\OpenGL\samhocevartutorial\tutorial2cpp\glew.c|9535|undefined reference to `glGetString@4'|
obj\Debug\glew.o||In function `glewInit_WGL_3DL_stereo_control':|
N:\projekticpp\OpenGL\samhocevartutorial\tutorial2cpp\glew.c|11540|undefined reference to `wglGetProcAddress@4'|
obj\Debug\glew.o||In function `glewInit_WGL_AMD_gpu_association':|
N:\projekticpp\OpenGL\samhocevartutorial\tutorial2cpp\glew.c|11553|undefined reference to `wglGetProcAddress@4'|
N:\projekticpp\OpenGL\samhocevartutorial\tutorial2cpp\glew.c|11554|undefined reference to `wglGetProcAddress@4'|
N:\projekticpp\OpenGL\samhocevartutorial\tutorial2cpp\glew.c|11555|undefined reference to `wglGetProcAddress@4'|
N:\projekticpp\OpenGL\samhocevartutorial\tutorial2cpp\glew.c|11556|undefined reference to `wglGetProcAddress@4'|
obj\Debug\glew.o:N:\projekticpp\OpenGL\samhocevartutorial\tutorial2cpp\glew.c|11557|more undefined references to `wglGetProcAddress@4' follow|
obj\Debug\glew.o||In function `wglewGetExtension@4':|
N:\projekticpp\OpenGL\samhocevartutorial\tutorial2cpp\glew.c|12111|undefined reference to `wglGetCurrentDC@0'|
obj\Debug\glew.o||In function `wglewContextInit@0':|
N:\projekticpp\OpenGL\samhocevartutorial\tutorial2cpp\glew.c|12124|undefined reference to `wglGetProcAddress@4'|
N:\projekticpp\OpenGL\samhocevartutorial\tutorial2cpp\glew.c|12125|undefined reference to `wglGetProcAddress@4'|
N:\projekticpp\OpenGL\samhocevartutorial\tutorial2cpp\glew.c|12133|undefined reference to `wglGetCurrentDC@0'|
||=== Build failed: 19 error(s), 0 warning(s) (0 minute(s), 1 second(s)) ===|

选择的编译器是GNU GCC编译器,我没有更改任何编译器设置。

我想查看this tutorial,这显然只会向part #1添加内容。所以我已将部分#1代码复制到项目中,但我得到了所有这些错误。显然,我缺少一些基本知识,因为大多数试图让这种运行的人似乎没有任何重大问题。由于我几乎陷入困境,但想学习如何解决这类问题,以便将来可以避免这些问题。

1 个答案:

答案 0 :(得分:1)

基本上,此错误消息告诉您,您链接的符号定义(.lib)与您系统找到的DLL不匹配。

您最好的做法是将GLEW静态链接到您的程序,这样可以完全避免DLL问题。有关如何操作,请参阅http://glew.sourceforge.net/install.html上的“包括源文件/项目文件”部分。

  

glew32.dll位于System32文件夹

永远不要将任何不属于Windows发行版的内容写入System32\Windows下面的任何其他目录 - 事情将会中断。