GLEW库未在CodeBlocks中链接(MinGW)

时间:2014-02-25 23:36:47

标签: windows opengl codeblocks glew freeglut

它列出的未定义引用显然是在'glew.h中'设置的。我已将这些库包含在链接器中,包含在搜索目录中,并将glew32.dll复制到系统注册表中(以及其他一些地方 - MinGW目录中的几个位置以及调试目录)。我在他们的网站上使用了最新版本的GLEW,尽管codeBlocks和freeGlut在10月/ 11月被下载回来了。我正在尝试遵循关于OpenGL / Glut的快速教程。

显然,调试器没有正确地链接库/标题,但是我无法弄清楚为什么 - 我到处搜索,并且有一些关于使minGW静态的东西,我不太明白,但它听起来喜欢它不需要为了它的工作。

错误意大利面:

-------------- Build: Debug in Window Tutorial (compiler: GNU GCC Compiler)---------------

mingw32-g++.exe -LC:\glew-1.10.0\include\GL 
-LC:\freeglut\include\GL 
-LC:\freeglut\lib 
-LC:\glew-1.10.0\lib\Release\Win32  
-o "bin\Debug\Window Tutorial.exe" 
obj\Debug\main.o            
C:\glew-1.10.0\lib\Release\Win32\glew32.lib 
C:\glew-1.10.0\lib\Release\Win32\glew32s.lib      
C:\freeglut\lib\glut32.lib 
C:\freeglut\lib\libfreeglut.a      
C:\freeglut\lib\libfreeglut_static.a 


obj\Debug\main.o: In function `display':
C:/Users/CNOVDM/Other/codeBlocks/Swiftless/Window/Window Tutorial/main.c:5: undefined reference to `glClearColor@16'
C:/Users/CNOVDM/Other/codeBlocks/Swiftless/Window/Window Tutorial/main.c:6: undefined   reference to `glClear@4'
C:/Users/CNOVDM/Other/codeBlocks/Swiftless/Window/Window Tutorial/main.c:7: undefined reference to `glLoadIdentity@0'
C:/Users/CNOVDM/Other/codeBlocks/Swiftless/Window/Window Tutorial/main.c:9: undefined reference to `glFlush@0'
collect2.exe: error: ld returned 1 exit status
Process terminated with status 1 (0 minutes, 4 seconds)
4 errors, 0 warnings (0 minutes, 4 seconds)

代码:

#include <glew.h>
#include <glut.h>

void display (void) {
glClearColor(1.0f, 0.0f, 0.0f, 1.0f); //Clear the background of our window to red
glClear(GL_COLOR_BUFFER_BIT); //Clear the colour buffer (more buffers later on)
glLoadIdentity(); // Load the Identity Matrix to reset our drawing locations

glFlush(); // Flush the OpenGL buffers to the window
}
int main (int argc, char **argv) {
glutInit(&argc, argv); // Initialize GLUT
glewInit();
glutInitDisplayMode(GLUT_SINGLE); //Set Up a basic Display Buffer (only single buffered for now)
glutInitWindowSize(500,500);    // Set the width and height of the window
glutInitWindowPosition(100,100); // set the position of the window
glutCreateWindow("My First OpenGL Window"); // Set the title for the window

glutDisplayFunc(display); // Tell GLUT to use the method "display" for rendering

glutMainLoop(); // Enter GLUT's main loop
}

2 个答案:

答案 0 :(得分:1)

据我所知,即使你用glew链接,你仍然需要与GL联系。尝试添加-lopengl32

答案 1 :(得分:0)

我想你忘了链接到lib文件了。

阅读manual 1.11.13

如果您使用的是x64系统,则应将glew32.dll置于lib\release\x64System32,将另一个lib\release\Win32置于SysWOW64

link将帮助您理解它。