Проблемы с компиляцией OpenGL

#c #opengl #compiler-construction

#c #opengl #компилятор-конструкция

Вопрос:

Я использую Visual Studio C и GLEW. Все настройки проекта установлены (включает / Библиотеки).

 MenuState.obj : error LNK2001: unresolved external symbol __imp____glewUseProgramObjectARB
MenuState.obj : error LNK2001: unresolved external symbol __imp____glewLinkProgramARB
MenuState.obj : error LNK2001: unresolved external symbol __imp____glewAttachObjectARB
MenuState.obj : error LNK2001: unresolved external symbol __imp____glewCompileShader
MenuState.obj : error LNK2001: unresolved external symbol __imp____glewShaderSource
MenuState.obj : error LNK2001: unresolved external symbol __imp____glewCreateShader
MenuState.obj : error LNK2001: unresolved external symbol __imp____glewCreateProgramObjectARB
  

Это единственные сообщения, которые я получаю. Все работало нормально, пока я не попытался реализовать шейдер.
Проблема в том, что я работаю на виртуальной машине, поэтому мой вопрос: нужен ли GLEW opengl32.lib в качестве зависимости? Потому что, если я не добавлю opengl32.lib в компоновщик, я получу еще больше ошибок. И если да, может ли проблема быть вызвана opengl32.lib? Поскольку я думаю, что opengl32.lib является стандартным Windows opengl32.lib, это будет означать, что это только opengl 1.1, и поэтому он не может связываться…

Итак, в чем проблема с этими ошибками?

Комментарии:

1. Вам необходимо установить связь с библиотекой glew. Вы это делаете?

2. @icktoofay Что такое glue32.lib ?

3. @Christian: Извините, я ввел ошибку. Я думал о том, как я бы произнес glew , и случайно набрал его.

4. @user986803 Вы не должны ссылаться как на статические, так и на динамические библиотеки GLEW, поэтому просто удалите ...s.lib версии.

5. Для работы GLEW вы должны связать с glew32.lib , glu32.lib , и opengl32.lib , как указано в инструкциях по установке . Кроме того: на какой версии Visual Studio вы работаете? Может быть. используемые вами lib-файлы были сгенерированы с другой версией, что делает их непригодными для использования в вашей версии. Создание GLEW самостоятельно должно это исправить.

Ответ №1:

Перед включением GLEW в Windows обязательно укажите #define GLEW_STATIC в проекте. Затем вы можете просто включить весь исходный код в файлы вашего проекта. В противном случае вам необходимо иметь соответствующий файл GLEW DLL в вашем исполняемом файле.