Библиотека GLEW не связывается в CodeBlocks (MinGW)

Неопределенные ссылки, которые он перечисляет, четко установлены в 'glew.h.' Я включил библиотеки в компоновщик, включения в каталоги поиска и скопировал glew32.dll в системный реестр (а также кучу других мест - несколько мест внутри каталога MinGW, а также каталога отладки). Я использую самую последнюю версию GLEW на их веб-сайте, хотя codeBlocks и freeGlut были загружены еще в октябре / ноябре. Я пытаюсь следовать быстрому учебнику по 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 ответа

Решение

Я думаю, что вы забыли ссылку на файлы lib.

прочитайте инструкцию 1.11.13.

Если вы используете систему x64, вы должны поставить glew32.dll в lib\release\x64 в System32, а другой включен в lib\release\Win32 в SysWOW64

эта ссылка поможет вам понять это.

Насколько я знаю, вам все равно нужно связаться с GL, даже если вы связываетесь с glew. попробуйте добавить -lopengl32

Другие вопросы по тегам