它列出的未定义引用显然是在'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
}
答案 0 :(得分:1)
据我所知,即使你用glew链接,你仍然需要与GL联系。尝试添加-lopengl32
答案 1 :(得分:0)
我想你忘了链接到lib文件了。
如果您使用的是x64系统,则应将glew32.dll
置于lib\release\x64
至System32
,将另一个lib\release\Win32
置于SysWOW64
这link将帮助您理解它。