Библиотека 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