Glew in VS 2010: неразрешенный внешний символ __imp__glewInit
Я изучаю OpenGL, следуя redbook.
Когда я прихожу к странице 90, мне нужно использовать glGenBuffers();
Затем мне нужно установить "glew".
Следуя шагам в
www.cs.uiowa.edu/~cwyman/classes/common/howto/winGLUT.html
Загружаю glew.zip
из glew.sourceforge.net/
и распаковываю файлы.
Я положил
-
glew.h
в C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Include
-
glew32.lib
в C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Lib
и
-
glew32.dll
в C:\Windows\System32
После этого я создаю свой проект в VS 2010 и в Linker->input
, я добавляю зависимости glew32.lib
.
Но когда я его создаю, у меня есть ошибка
unresolved external symbol __imp__glewInit
Я целый день проводил поиск решений, но не нашел его.
Надеюсь, кто-то может мне помочь.
Ответы
Ответ 1
Как ранее сказал Ханс Пассант (ранее он ответил на мой вопрос, но удалил ответ.)
Мне нужно скомпилировать исходный код glew.
Как скомпилировать его, см. OpenGL: как скомпилировать glew32.dll из исходного файла.
Затем вы получите glew32d.dll
и glew32d.lib
.
- Поместите
glew32d.dll
в c:\windows\sysWOW64
(я также помещаю его в system
и system32
).
- Поместите
glew32d.lib
в C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Lib
- Поместите
glew.h
в C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Include
Тогда он будет работать.
Ответ 2
Поскольку он уже не упоминался, моя проблема заключалась в том, что я связывал статическую версию glew (glew32s.lib), но я не определил символ препроцессора GLEW_STATIC
(так что заголовок, который я компилировал, 't соответствует библиотеке, с которой я связывался).
Ответ 3
Другим возможным решением и меньшим объемом работы, чем компиляция dll из исходного кода, является просто использование 32-битных двоичных файлов. Windows 7 64bit просто не хочет сотрудничать с 64-битными двоичными файлами, доступными в настоящее время.
Вот довольно общее руководство по настройке, если кому-то нужно. http://openglbook.com/setting-up-opengl-glew-and-freeglut-in-visual-c/
Ответ 4
Кроме того, убедитесь, что вы добавили для него правильное включение. Я сделал все сумасшедшие материалы библиотеки и как-то забыл фактически включить заголовочный файл.
В моем случае это было:
#include <GL/glew.h>
Ответ 5
Я боролся с этим тоже несколько часов. Тогда я понял, что моя программа - win32 вместо x64. Я включил glew.lib в папку x64, когда я должен использовать glew.lib в папке win32.