Неразрешенный внешний символ для каждой функции glew, которую я использую - PullRequest
1 голос
/ 14 октября 2019

Я хотел создать новый проект OpenGl / GLEW / GLFW Visual Studio в 64 bit. Итак, я скачал glew binaries и glfw binaries. Мои настройки проекта следующие:

Дополнительные библиотеки:

  • glew-2.1.0 \ lib \ Release \ x64
  • glfw-3.3.bin.WIN64 \lib-vc2019

Дополнительные зависимости:

  • glew32s.lib (я не понимаю, почему он назван glew32 и находится в папке x64)
  • opengl32.lib
  • glfw3.lib

При такой настройке для каждой функции glew, например glGenBuffers или glUseProgram, или чего-либо еще, я получаю LNK2001 неразрешенную ошибку внешнего символа. Любая подсказка, где я допустил ошибку?

(И так как я новичок во всем этом, кто-то может объяснить, почему я должен связать opengl32.lib в 64-битном приложении и почему нет opengl64.lib итак далее?)

Ответы [ 2 ]

1 голос
/ 14 октября 2019

Если вы хотите связать статическую библиотеку glew в windows, вам нужно определить определение препроцессора GLEW_STATIC при компиляции приложения.
См. Сборка проекта с помощью GLEW
и GLEW - почему я должен определять GLEW_STATIC? .

Если вы используете gnu (g ++), просто добавьте -D GLEW_STATIC в команду построения.
В Visual Studio добавьте GLEW_STATIC в Свойства проекта -> C / C ++ -> Препроцессор -> Определения препроцессора

0 голосов
/ 14 октября 2019

Ну, похоже, работает, когда я связываю его динамически (glew32.lib вместо glew32s.lib). До сих пор не знаю, почему статическое связывание не сработало.

...