GLEW и Freeglut не будут работать вместе? - PullRequest
0 голосов
/ 28 октября 2010

Я пытаюсь использовать геометрические шейдеры в своем приложении OpenGL, которое в настоящее время использует Freeglut, и я пытаюсь использовать GLEW для этого, потому что, насколько я понимаю, функциональность геометрических шейдеров находится в расширении. Мой порядок включения следующий:

   #define GLEW_STATIC
   #include <glew.h>
   #include "freeglut.h"

Однако, когда я делаю это, я получаю много ошибок компоновщика, таких как:

   error LNK2001: unresolved external symbol ___glewAttachShader

Я не получаю никаких ошибок, когда использую только базовую функциональность OpenGL (то есть, вещи, отсутствующие в расширениях), поэтому я знаю, что компилятор находит все «базовые» библиотеки, такие как glu32 и т. Д., Которые я использую Visual Studio 2008. Есть предложения?

1 Ответ

2 голосов
/ 28 октября 2010

Это ошибка компоновщика, которая говорит о том, что он не нашел точку входа glew.

Ссылка на библиотеку glew (вы не видели ошибки раньше, потому что, я полагаю, вы не использовали никакого расширения).

Редактировать: На самом деле это напрямую связано с использованием вами "GLEW_STATIC".

со страницы GLEW :

в WindowsУ вас также есть возможность добавить предоставленный файл проекта glew_static.dsp в ваше рабочее пространство (решение) и скомпилировать его вместе с другими вашими проектами.В этом случае вам также нужно изменить константу препроцессора GLEW_BUILD на GLEW_STATIC при сборке статической библиотеки или исполняемого файла, в противном случае вы получите ошибки сборки.

Это говорит о том, что вы несете ответственность за создание и включение исходных файлов glew при использовании настройки GLEW_STATIC.

...