Получение GLEW для компиляции в Code::Blocks

Я хочу изучить OpenGL на C++ и использую Code::Blocks. Мне удалось заставить работать freeglut вместе с несколькими онлайн-примерами (а также примером, поставляемым с CB). Однако, когда я пытаюсь включить GLEW в некоторые учебники, которым я следую, я получаю следующие ошибки компилятора:

obj\Debug\main.o||In function `RenderSceneCB':|
C:\C Programs\OpenGL Test\main.cpp|12|undefined reference to `_imp____glewEnableVertexAttribArray'|
C:\C Programs\OpenGL Test\main.cpp|13|undefined reference to `_imp____glewBindBuffer'|
C:\C Programs\OpenGL Test\main.cpp|14|undefined reference to `_imp____glewVertexAttribPointer'|
C:\C Programs\OpenGL Test\main.cpp|18|undefined reference to `_imp____glewDisableVertexAttribArray'|
obj\Debug\main.o||In function `CreateVertexBuffer':|
C:\C Programs\OpenGL Test\main.cpp|34|undefined reference to `_imp____glewGenBuffers'|
C:\C Programs\OpenGL Test\main.cpp|35|undefined reference to `_imp____glewBindBuffer'|
C:\C Programs\OpenGL Test\main.cpp|36|undefined reference to `_imp____glewBufferData'|
||=== Build finished: 7 errors, 0 warnings (0 minutes, 0 seconds) ===|

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

У кого есть идеи, кидайте их мне.

Я использую Windows 7, Code::Blocks 12.11 и скачал двоичные файлы Ming32 для GLEW 1.9.0.

Моя настройка компоновщика настроена в следующем порядке:

glew32 freeglut opengl32 glu32 winmm gdi32


person Justin Lloyd    schedule 04.06.2013    source источник
comment
Посмотрите на этот вопрос. Скорее всего, вы найдете там решение.   -  person Anickyan    schedule 04.06.2013
comment
возможный дубликат Как использовать GLEW с MinGW   -  person Nicol Bolas    schedule 04.06.2013
comment
Я не уверен, как любой из них ответит на него. Anickyan, они сказали, что решили свою проблему, получив GLEW для Mingw32, что, как я сказал, у меня уже есть. Что касается того, как использовать GLEW с потоком MinGW, я не совсем уверен, как это дубликат или как он должен решить мою проблему.   -  person Justin Lloyd    schedule 04.06.2013


Ответы (2)


У вас проблема с настройкой компоновщика. Вы должны связать

glew32s.lib

Вы должны связать не только glew32.lib, но и glew32s.lib. Убедитесь, что он должен быть вверху списка компоновщика.

При написании кода не забудьте определить

#define GLEW_STATIC

В верхней части исходного файла.

person Dinesh Subedi    schedule 05.06.2013
comment
Динеш, спасибо. Это сделало это! Раньше я пробовал glew32s, но он не был в ТОПе списка. Когда я переместил его в самый верх списка компоновщиков, программа скомпилировалась и заработала. Большое спасибо, я ценю это. - person Justin Lloyd; 05.06.2013

Вчера я изо всех сил пытался заставить работать пример GLEW с https://open.gl/introduction. Я работаю по-своему через эти учебные пособия и обнаружить, что настройка среды всегда является самой сложной частью. Я также использую Code:Blocks с MinGW и хотел попасть в OpenGL. Ниже вы найдете краткое описание самостоятельной сборки GLEW и SFML, а также информацию о том, как настроить проект, использующий оба...

После многих разочарований мне удалось загрузить «glew-1.13.0.zip» (исходный ZIP-файл, мне пришлось собрать GLEW самостоятельно). Скопировать содержимое zip-файла в C:\ (теперь этот путь должен работать: C:\glew -1.13.0\сборка\cmake)

Вам нужно будет собрать GLEW для Code:Blocks с MinGW.

У меня есть CMake (погуглите)

Скопируйте содержимое zip-файла в C:\ (C:\CMake3.2.0\bin) и запустите cmake-gui.exe.

В CMake найти:

Где находится исходный код: C:\glew-1.13.0\build\cmake

Где собирать бинарники: C:\glew-1.13.0\ownbuild

Нажмите «Настроить» (в моем случае выберите свой компилятор «CodeBlocks — MinGW Makefiles») Нажмите «Создать» (оставьте настройки в покое, просто нажмите кнопку)

Теперь откройте C:\glew-1.13.0\ownbuild\glew.cbp в Code:Blocks и соберите все (сочетание клавиш Ctrl+F9 в CodeBlocks: D)

После успешной сборки ваш GLEW собран и готов к работе в вашей среде.

///////// НАЧАЛО – ПОЕЗДКА ПО SFML Поскольку я являюсь поклонником SFML, а вышеупомянутое руководство поддерживает его, возможно, вы также захотите создать и использовать sfml

sfml 2-3-2 (погуглите)

  1. установить программу (oalinst.exe) с сайта openal.software.informer.com/3.0/
  2. В CMake:

Где исходный код: C:/SFML-2.3.2 Где собирать бинарники: C:/SFML-2.3.2/build

проверьте SFML_BUILD_EXAMPLES

3. кодовые блоки: -сборка "все"

//////// КОНЕЦ - ПОЕЗДКА SFML НА СТОРОНУ


Теперь вы хотите использовать GLEW

Создайте новое консольное приложение в code:blocks (я назвал его «GLEW_sample»)

щелкните правой кнопкой мыши и выберите параметры сборки

Теперь ссылка в CB выглядит следующим образом:

НАСТРОЙКИ ЛИНКЕРА: (мне не нравится сохранять относительные пути) *добавьте все библиотеки SFML как обычно C:\SFML-2.3.2\build\lib\ *добавьте OPENGL.dll из папки system32 C:\Windows\System32\ opengl32.dll *добавить библиотеки GLEW C:\glew-1.13.0\ownbuild\lib\

КАТАЛОГ ПОИСКА: КОМПИЛЯТОР: C:\SFML-2.3.2\include C:\glew-1.13.0\include LINKER: C:\SFML-2.3.2\build\lib C:\glew-1.13.0\ownbuild\ мусорное ведро

Это исходный код из вышеупомянутого учебника https://open.gl/content/code/c2_color_triangle.txt просто замените им код в консольном приложении, и все готово.

Теперь вы собрали GLEW и SFML с помощью Cmake и создали проект с работающим исходным кодом. Скомпилируйте и наслаждайтесь

person SabsZor    schedule 16.06.2016