Итак, я пытаюсь научиться писать шейдеры и включать их в свою программу OpenGL (я использую SFML 1.6 для создания правильной среды OpenGL, а не слоняюсь без дела с GLUT; моя IDE - это Codeblocks; моя карта поддерживает OpenGL 3.1 и GLSL1.3).Я наткнулся на загадку, однако;похоже, мне нужен GLEW, чтобы помочь включить шейдеры GLSL в мою программу.Поэтому я пошел и нашел исходный код в GLEW и скомпилировал его как статические библиотеки, используя CodeBlocks, в соответствии с инструкциями окончательного комментария здесь (я добавил #define GLEW_STATIC
в файл c., Так как он не былмне ясно, где я должен был его добавить), так что теперь у меня есть четыре .a файла:
libglew32.a, libglew32d.a, libglew32mx.a, libglew32mxd.a
Я сказал своему компилятору, где найти файлы заголовков (glew.h, glxew.h, wglew.h), и я сказал компоновщику, где искать библиотеки (выше), добавивсоответствующие каталоги в Настройки-> Компилятор и отладчик ...-> Поиск в каталогах.В моем проекте в разделе Параметры сборки-> Настройки компоновщика-> Библиотеки ссылок я также связал четыре приведенных выше.
При выполнении всего вышеперечисленного я получил следующую ошибку при попытке вызвать glewInit ():
неопределенная ссылка на '_imp__glewInit'
Некоторые чтение сказали мне, что мне нужно было добавить #define GLEW_STATIC
перед #include <glew.h>
, поэтому я сделалчто, и теперь я получаю целую кучу неопределенных ссылок на ошибки "wglGetProcAddress @ 4" (единственная строка кода GLEW в моей программе glewInit();
):
Design\Learning C++\OPEN-GL\OpenGL Experiment 6 - 27-block Terrain Test\main.cpp||In function 'int main()':|
Design\Learning C++\OPEN-GL\OpenGL Experiment 6 - 27-block Terrain Test\main.cpp|43|warning: unused variable 'LightOn'|
C:\Program Files (x86)\CodeBlocks\MinGW\downloaded\glew-1.7.0\afiles\libglew32.a(glew.o):glew.c|| undefined reference to `glGetString@4'|
C:\Program Files (x86)\CodeBlocks\MinGW\downloaded\glew-1.7.0\afiles\libglew32.a(glew.o):glew.c|| undefined reference to `wglGetProcAddress@4'|
C:\Program Files (x86)\CodeBlocks\MinGW\downloaded\glew-1.7.0\afiles\libglew32.a(glew.o):glew.c|| undefined reference to `wglGetProcAddress@4'|
C:\Program Files (x86)\CodeBlocks\MinGW\downloaded\glew-1.7.0\afiles\libglew32.a(glew.o):glew.c|| undefined reference to `wglGetProcAddress@4'|
C:\Program Files (x86)\CodeBlocks\MinGW\downloaded\glew-1.7.0\afiles\libglew32.a(glew.o):glew.c|| undefined reference to `wglGetProcAddress@4'|
C:\Program Files (x86)\CodeBlocks\MinGW\downloaded\glew-1.7.0\afiles\libglew32.a(glew.o):glew.c|| undefined reference to `wglGetProcAddress@4'|
C:\Program Files (x86)\CodeBlocks\MinGW\downloaded\glew-1.7.0\afiles\libglew32.a(glew.o):glew.c|| more undefined references to `wglGetProcAddress@4' follow|
C:\Program Files (x86)\CodeBlocks\MinGW\downloaded\glew-1.7.0\afiles\libglew32.a(glew.o):glew.c|| undefined reference to `wglGetCurrentDC@0'|
C:\Program Files (x86)\CodeBlocks\MinGW\downloaded\glew-1.7.0\afiles\libglew32.a(glew.o):glew.c|| undefined reference to `wglGetProcAddress@4'|
C:\Program Files (x86)\CodeBlocks\MinGW\downloaded\glew-1.7.0\afiles\libglew32.a(glew.o):glew.c|| undefined reference to `wglGetProcAddress@4'|
C:\Program Files (x86)\CodeBlocks\MinGW\downloaded\glew-1.7.0\afiles\libglew32.a(glew.o):glew.c|| undefined reference to `wglGetProcAddress@4'|
C:\Program Files (x86)\CodeBlocks\MinGW\downloaded\glew-1.7.0\afiles\libglew32.a(glew.o):glew.c|| undefined reference to `wglGetProcAddress@4'|
C:\Program Files (x86)\CodeBlocks\MinGW\downloaded\glew-1.7.0\afiles\libglew32.a(glew.o):glew.c|| undefined reference to `wglGetProcAddress@4'|
C:\Program Files (x86)\CodeBlocks\MinGW\downloaded\glew-1.7.0\afiles\libglew32.a(glew.o):glew.c|| more undefined references to `wglGetProcAddress@4' follow|
C:\Program Files (x86)\CodeBlocks\MinGW\downloaded\glew-1.7.0\afiles\libglew32.a(glew.o):glew.c|| undefined reference to `glGetString@4'|
C:\Program Files (x86)\CodeBlocks\MinGW\downloaded\glew-1.7.0\afiles\libglew32.a(glew.o):glew.c|| undefined reference to `glGetString@4'|
C:\Program Files (x86)\CodeBlocks\MinGW\downloaded\glew-1.7.0\afiles\libglew32.a(glew.o):glew.c|| undefined reference to `wglGetProcAddress@4'|
C:\Program Files (x86)\CodeBlocks\MinGW\downloaded\glew-1.7.0\afiles\libglew32.a(glew.o):glew.c|| undefined reference to `wglGetProcAddress@4'|
C:\Program Files (x86)\CodeBlocks\MinGW\downloaded\glew-1.7.0\afiles\libglew32.a(glew.o):glew.c|| undefined reference to `wglGetProcAddress@4'|
C:\Program Files (x86)\CodeBlocks\MinGW\downloaded\glew-1.7.0\afiles\libglew32.a(glew.o):glew.c|| undefined reference to `wglGetProcAddress@4'|
C:\Program Files (x86)\CodeBlocks\MinGW\downloaded\glew-1.7.0\afiles\libglew32.a(glew.o):glew.c|| undefined reference to `wglGetProcAddress@4'|
C:\Program Files (x86)\CodeBlocks\MinGW\downloaded\glew-1.7.0\afiles\libglew32.a(glew.o):glew.c|| more undefined references to `wglGetProcAddress@4' follow|
C:\Program Files (x86)\CodeBlocks\MinGW\downloaded\glew-1.7.0\afiles\libglew32.a(glew.o):glew.c|| undefined reference to `wglGetCurrentDC@0'|
||=== Build finished: 23 errors, 1 warnings ===|
Я в растерянности;технические аспекты всего этого (связывание / компиляция / и т. д.) все еще являются новыми и сбивают меня с толку.
Что мне нужно сделать, чтобы заставить работать GLEW, чтобы я мог включить шейдеры GLSL вмой SFML проект OpenGL?(Или я могу как-то проще сделать это без GLEW или каких-либо других внешних библиотек? Что было бы здорово!)