Подтвердить что ты не робот

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

Я целый день проводил поиск решений, но не нашел его.

Надеюсь, кто-то может мне помочь.

4b9b3361

Ответ 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.