Блеск в VS 2010: неразрешенный внешний символ __imp__glewInit - PullRequest
17 голосов
/ 17 января 2011

Я изучаю OpenGL, следуя руководству. Когда я подхожу к странице 90, мне нужно использовать glGenBuffers (); Тогда мне нужно установить «глю». Следуя инструкциям в 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

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

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

Ответы [ 5 ]

36 голосов
/ 20 января 2013

Так как это еще не упомянуто, моя проблема заключалась в том, что я связывался со статической версией glew (glew32s.lib), но я не определил символ препроцессора GLEW_STATIC (поэтому заголовок, с которым я скомпилировал, фактически не не соответствует библиотеке, с которой я связывался).

7 голосов
/ 17 января 2011

Так же, как Ханс Пассант сказал ранее (он ответил на мой вопрос ранее, но удалил ответ.)

Мне нужно скомпилировать исходный код 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

Тогда это будет работать.

5 голосов
/ 28 марта 2012

Другое возможное решение и меньшая работа, чем при компиляции dll из исходного кода, это просто использование 32-битных двоичных файлов.Windows 7 64bit просто не хочет взаимодействовать с 64-разрядными двоичными файлами, которые у них есть в настоящее время.

Вот довольно общее руководство по настройке, если кому-то нужно.http://openglbook.com/setting-up-opengl-glew-and-freeglut-in-visual-c/

1 голос
/ 19 апреля 2015

Я тоже боролся с этим несколько часов. Тогда я понял, что моя программа - win32 вместо x64. Я включил glew.lib в папку x64, когда мне нужно было использовать glew.lib в папке win32.

1 голос
/ 03 октября 2011

Также убедитесь, что вы добавили правильное включение для него. Я сделал все безумные библиотечные вещи и почему-то забыл включить заголовочный файл.

В моем случае это было:

#include <GL/glew.h>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...