Сайт о телевидении

Сайт о телевидении

» » Подключение opengl. Настраиваем Windows для программирования OpenGL

Подключение opengl. Настраиваем Windows для программирования OpenGL

Это моя первая статья по тематике программирования и в ней я хотел бы рассказать об успешном способе установки OpenGL на Windows для CodeBlocks. Если вы начинаете программировать на C++ используя графическую оболочку OpenGL, то отличный способ начать делать это с помощью библиотеки GLUT .

Для установки GLUT нам потребуется:

OS Windows – статья адаптирована для Windows 7 (в Windows XP и Vista тоже должно заработать).

OpenGL – входит в программное обеспечение Windows

GLUT – чтобы скачать библиотеку нажмите здесь:

IDE – больше всего мне нравится CodeBlocks, его и будем использовать (но вы можете использовать и Visual Studio , если желаете)

C++ компилятор – я буду использовать компилятор MinGW. Его можно установить как отдельно, так и вместе с CodeBlocks.

Как установить OpenGL

Шаг 1 — Скачиваем CodeBlocks

Скачайте CodeBlocks с MinGW . Выбирать нужно бинарный инсталлятор (файл *.exe) с MinGW (если он у вас не установлен). На данный момент свежий пакет установки называется так «codeblocks-13.12mingw-setup.exe». Найти его можно на странице Home -> Downloads -> Download the binary release .

Шаг 2 — Устанавливаем CodeBlocks

Установите CodeBlocks и MinGW запустив файл *.exe. Установите все параметры по умолчанию. При возникновении ошибки в CodeBlocks « The compiler’s setup (GNU GCC Compiler) is invalid, so Code::Blocks cannot find/run the compiler» зайдите в Settings — > Compiler -> Toolchain executables и нажмите Auto-detect , далее 2 раза OK .

Шаг 3 — Opengl установка

Распаковываем скачанный и выполняем следующие действия:

Скопируйте glut.dll в папку “C:\Windows\System32” (Если вы используете 64-разрядную версию Windows 7, то вам необходимо скопировать этот файл в папку “C:\Windows\SysWOW64”).

Скопируйте glut.h в папку «include\GL» вашего компилятора MinGW. Если вы установили CodeBlocks вместе с MinGW в каталог по умолчанию, то это будет папка «C:\Program Files\CodeBlocks\MinGW\include\GL» (у меня это “C:\MinGW\include\GL ”)

Скопируйте libglut32.a в ту же папку с компилятором “MinGW\lib”.

Шаг 4 — Как подключить OpenGL в CodeBlocks

Теперь у вас есть все необходимое программное обеспечение. Теперь вы можете создать новый OpenGL и Glut проект. CodeBlocks имеет возможность при создании нового проекта создание проекта GLUT, но мы не будем использовать это сейчас.

Запускаем CodeBlocks и выбираем File -> New -> Project , в новом окне выберите Empty project и нажмите кнопку GO .

Пропускаем приветствие и жмем Next , на следующей странице вводим название проект в первой строчке и задаем путь для его сохранения во второй строке.

На заключительной странице убедитесь, что в выпадающем списке выбран GNU GCC Compilier.

Нажмите Finish .

После того как ваш проект создан, щелкните правой кнопкой мыши по названию проекта в окне Management и выберите “Build options… ”. В левой части окна должно быть выбрано название проекта (не выбирайте Debug или Release). Далее выбираем вкладку Linker settings .

В этой вкладке нажмите Add и в появившемся окне Add library в поле File введите без кавычек «opengl32».
Сделайте тоже самое на этот раз вводя «glu32» и «glut32».

Теперь у вас есть все настройки проекта для OpenGL и GLUT.

Шаг 5 — Пример OpenGL

Скачайте данный GLUT OpenGL пример и распакуйте его — . С помощью Блокнота откройте его и скопируйте содержимое.
В CodeBlocks создайте новый файл, выбрав File -> New -> Empty File и введя название «main.cpp».

Подтвердите добавление файла к проекту.

В новом окошке поставьте галочки Debug и Release и нажмите OK .

Вы создали новый пустой файл в проекте. Вставьте содержимое скачанного файла с примером.

Теперь попробуем скомпилировать и запустить. Нажмите Build -> Build and run (либо Build -> Build и далее Build -> Run ).

Если вы сделали все правильно, то не должны получить никаких ошибок сборки.

У вас должна появиться буква Z, составленная из линий. Готово!

  • Tutorial

Пост ориентирован на новичков. В нем не рассматривается настройка Visual Studio. Он научит вас настраивать некоторые текстовые редакторы на компиляцию OpenGL приложений, либо выполнять это из консоли вручную.

Качаем с бинарники под MinGW . Распаковываем, freeglut.dll из папки bin кидаем в " C:\Windows\System32 " (для х86) или " C:\Windows\SysWOW64 " (для х64), или любую другую папку, которая указана в PATH . Содержимое папок include и lib можно скопировать либо в " MinGW\include " и " MinGW\lib " (так будет проще), либо в отдельные созданые папки " MinGW\freeglut\include " и " MinGW\freeglut\lib ".

На этом с freeglut все. Для его подключения нужно добавить #include

glew
Библиотека glew позволяет определять что видеокарта поддерживает, а что - нет. Ее установка немного сложнее для нашего случая.
Качаем с , поскольку бинарники заточены под Visual Studio и нам не подойдут. Теперь эти исходники нужно скомпилировать. Я в этом практически ничего не понимаю, по-этому обратился к гуглу и нашел помощь :
Распаковываем скачанный архив, открываем консоль, заходим в полученную папку и пишем следующие команды:
gcc -DGLEW_NO_GLU -O2 -Wall -W -Iinclude -DGLEW_BUILD -o src/glew.o -c src/glew.c gcc -shared -Wl,-soname,libglew32.dll -Wl,--out-implib,lib/libglew32.dll.a -o lib/glew32.dll src/glew.o -L/mingw/lib -lglu32 -lopengl32 -lgdi32 -luser32 -lkernel32 ar cr lib/libglew32.a src/glew.o В результате в папке lib появилось 3 файла: glew32.dll , glew32.dll.a и glew32.a .
glew32.dll копируем туда же, куда ранее скопировали freeglut.dll , остальные 2 - в папку " MinGW\lib " либо " MinGW\glew\lib ".
Из папки include копируем содерижмое в " MinGW\include " или " MinGW\glew\include ".

На этом с glew все. Для его подключения нужно добавить #include , но сделать это необходимо перед подключением других gl библиотек.

Проверяем работоспособность
Создаем минимальный test.cpp:
#include #include #include #include int main(int argc, char** argv) { glutInit(&argc, argv); glutInitDisplayMode(GLUT_RGBA); glutInitWindowSize(512, 512); glutInitContextVersion(4, 1); // Версия OpenGL, которую вы хотите использовать glutInitContextProfile(GLUT_CORE_PROFILE); glutCreateWindow(argv); if (glewInit()) { std::cerr << "Unable to initialize GLEW ... exiting\n"; exit(EXIT_FAILURE); } glutMainLoop(); }
Обратите внимание на функцию glutInitContextVersion - она завершит выполнение программы если ей не удалось создать контекст для указаной версии OpenGL. Чтобы узнать версию OpenGL, которую поддерживает ваша видеокарта, можно заглянуть в ее спецификацию либо скачать бинарники glew с и запустить glewinfo.exe из папки bin . Он сгенерирует файл glewinfo.txt , в котором будет детально расписано что ваша видеокарта поддерживает, а что - нет. Иногда функционал можно расширить установкой более свежего видеодрайвера.

Открываем консоль, заходим в папку с test.cpp и пишем следующую команду:
g++ -o test.exe test.cpp -lglew32 -lfreeglut -lopengl32 -lglu32 -Wl,--subsystem,windows В случае, если вы создавали отдельные папки freeglut и glew , здесь необходимо дополнительно указать соответствующие дополнительные папки include и lib . Тогда пример команды выглядит так:
g++ -o test.exe test.cpp -lglew32 -lfreeglut -lopengl32 -lglu32 -Wl,--subsystem,windows -I"C:\MinGW\freeglut\include" -L"C:\MinGW\freeglut\lib" -I"C:\MinGW\glew\include" -L"C:\MinGW\glew\lib"
Флаг -Wl,--subsystem,windows указывает компилятору что он должен создать графическое приложение, а не консольное.
Если все получилось, должен получится файл test.exe , который при запуске создает белое окно 512х512.

Когда вы захотите поделится своим приложением, убедитесь что вместе с исполняемым файлом передаете используемые библиотеки - freeglut.dll и glew32.dll .

Sublime Text 2
Ну и напоследок, приведу пример настройки Sublime. Скачать его можно отсюда , вводные видео-уроки на английском языке можно глянуть .
После установки открываем файл настройки билда С++:
" C:\Users\%Username%\AppData\Roaming\Sublime Text 2\Packages\C++\C++.sublime-build "
Сохраняем его копию как
" C:\Users\%Username%\AppData\Roaming\Sublime Text 2\Packages\User\C++\С++ OpenGL.sublime-build "

Строчку
"cmd": ["g++", "${file}", "-o", "${file_path}/${file_base_name}"], дополняем подключением библиотек:
"cmd": ["g++", "${file}", "-o", "${file_path}/${file_base_name}", "-lfreeglut -lopengl32 -lglew32 -Wl,--subsystem,windows"],
Аналогично, строчку
"cmd": ["bash", "-c", "g++ "${file}" -o "${file_path}/${file_base_name}" && "${file_path}/${file_base_name}""] дополняем до
"cmd": ["bash", "-c", "g++ "${file}" -o "${file_path}/${file_base_name}" -lglew32 -lfreeglut -lopengl32 -lglu32 -Wl,--subsystem,windows && "${file_path}/${file_base_name}""] Если вы создавали отдельные папки под freeglut и glew, эти команды следует дополнить указанием адресов дополнительных папок include и lib .

Для того чтобы Sublime не отказывался выводить кириллицу в свою консоль, после
"selector": "source.c, source.c++", добавляем
"encoding": "cp1251",
Теперь, когда у нас открыт test.cpp , выбираем Tools -> Build system -> C++ OpenGL .
Нажимаем Ctrl+B для компиляции, Ctrl+Shift+B для компиляции и запуска.

На этом все!

UPD : Когда дело дошло до кода с gl-функциями из последних версий, выяснилось, что подключение заголовочного файла GL/gl.h недостаточно. В нем содержится устаревшая версия 1.1, и этот файл больше не обновляется. В дополнение к нему необходимо подключить GL/glext.h (последнюю версию которого надо скачать

Пакет файлов под названием OpenGL в большинстве случаев требуется пользователям для корректного запуска определенных игр на компьютере под управлением операционной системы Windows 7. Если данный драйвер отсутствует или его версия устарела, программы просто не будут включаться, а на экране отобразится соответствующее уведомление с просьбой инсталляции или обновления ПО. В этой статье мы максимально развернуто расскажем о загрузке новых библиотек OpenGL.

В первую очередь стоит разобраться, каким же образом инсталлируется рассматриваемый компонент на ПК. Все необходимые файлы ставятся вместе с драйверами графического адаптера. Поэтому сперва следует обновить программное обеспечение этого комплектующего, а потом переходить к разбору альтернативного метода.

Когда у вас установлен самый свежий драйвер на видеокарту и обновлений больше нет, при этом все равно появляется уведомление о необходимости обновления OpenGL, сразу переходите к третьему способу. Если и этот вариант не принес никаких результатов, значит, ваше оборудование не поддерживает последние библиотеки. Рекомендуем задуматься о выборе новой видеокарты.

Способ 1: Обновление драйверов видеокарты в Windows 7

Как уже было сказано выше, компоненты OpenGL ставятся вместе с файлами графического адаптера. В Windows 7 присутствует несколько методов их обновления. Каждый из них подходит в разных ситуациях и требует от пользователя выполнения определенных действий. Перейдите к статье по ссылке ниже, чтобы детально ознакомиться со всеми способами. Выберите подходящий и воспользуйтесь предоставленными инструкциями. По завершении процесса достаточно перезагрузить компьютер и проверить работоспособность игр или других программ, которые требовали наличия свежей версии библиотеки.

Способ 2: Обновление компонентов в фирменной утилите видеокарты

Сейчас основными производителями графических адаптеров являются AMD и NVIDIA. У каждого имеется собственный софт, который обеспечивает корректную работу с операционной системой и позволяет обновлять ПО. Обладателям видеокарт NVIDIA советуем обратиться к материалу по следующей ссылке, чтобы разобраться с установкой новой версии драйвера OpenGL в .

Владельцам карточек от AMD нужно ознакомиться с другими статьями, поскольку в данном случае все действия выполняются в либо в , в зависимости от типа установленного ПО.

Способ 3: Обновление DirectX

Не самым эффективным, но иногда работающим методом является установка новых компонентов библиотеки DirectX. Порой в ней находятся подходящие файлы, которые позволяют нормально функционировать необходимым играм или программам. Сначала нужно узнать, какой DirectX уже установлен на вашем компьютере. Для этого ознакомьтесь с инструкцией в статье ниже.

На данный момент последней версией для ОС Виндовс 7 является DirectX 11. Если у вас инсталлирована более ранняя библиотека, советуем обновить ее и проверить работоспособность ПО. Развернуто на эту тему читайте в другом материале.

Как видите, в обновлении OpenGL нет ничего сложного, главным вопросом остается лишь поддержка свежих файлов данного компонента вашей видеокартой. Мы рекомендуем проверить все способы, поскольку эффективность каждого зависит от разных обстоятельств. Ознакомьтесь с инструкциями и следуйте им, тогда у вас точно все получится.

Вставьте glut.h в C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\{14.11.25503}\include\GL Создайте папку GL, если она еще не C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\{14.11.25503}\include\GL . {Вещь} может отличаться.

Вставить glut.lib в C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\{14.11.25503}\lib\x64 . Вставить glut32.lib в C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\{14.11.25503}\lib\x86 . {Вещь} может отличаться.

Вставьте glut32.dll в C:\Windows\System32 . Вставьте glut.dll и glut32.dll в C:\Windows\SysWOW64 .

Следуйте следующему ответу Vishwanath gowda. Перейдите в Project -> Properties (All Configuration) -> Linker -> Input -> Additional Dependencies-> edit (стрелка вниз на правом конце) Type-> opengl32.lib glu32.lib glut32.lib Хит Ok-> применить.

2018-12-04T00:00Z

    Загрузите и установите Visual C ++ Express.

    Загрузите и извлеките «freeglut 2.8.0 MSVC Package» с http://www.transmissionzero.co.uk/software/freeglut-devel/

    Установка для Windows 32 бит:

(a) Скопируйте все файлы из папки include / GL и вставьте в папку C: \ Program Files \ Microsoft SDK \ Windows \ v7.0A \ Include \ gl.

(b) Скопируйте все файлы из папки lib и вставьте их в папку C: \ Program Files \ Microsoft SDK \ Windows \ v7.0A \ Lib.

(c) Скопируйте файл freeglut.dll и вставьте его в папку C: \ windows \ system32.

2018-12-11T00:00Z

Для простого и подходящего способа сделать это сначала загрузите предварительно расфасованный выпуск freeglut. Затем прочитайте его Readme.txt.

Я скопировал некоторые важные части этого пакета здесь:

Создайте папку на вашем ПК, которая читается всеми пользователями, например «C: \ Program Files \ Common Files \ MSVC \ freeglut \» в обычной системе Windows. Скопируйте папки "lib \" и "include \" из этого zip-архива в это место... DLL-библиотека freeglut может быть помещена в ту же папку, что и ваше приложение...

Откройте свойства проекта и выберите «Все конфигурации» (это необходимо для обеспечения того, чтобы наши изменения применялись как для отладочных, так и для выпуска сборок). Откройте раздел «Общие» в разделе «C / C ++» и настройте папку «include», созданную вами выше, в качестве «Дополнительного каталога ссылок». Если у вас более одного пакета GLUT, содержащего файл «glut.h», важно убедиться, что папка с бесплатным доступом включает выше всех других включенных в GLUT папок... Откройте «общий» раздел в разделе «Linker» и настройте папку lib \, которую вы создали выше, в качестве «Дополнительного каталога библиотек» ...

2018-12-18T00:00Z

OpenGL поставляется вместе с Visual Studio. Вам просто нужно установить пакет GLUT (freeglut будет отлично), который можно найти в NuGet.

Откройте свое решение, нажмите «TOOLS-> NuGet Package Manager» -> «Менеджер пакетов», чтобы открыть консоль NuGet, введите « Install-Package freeglut .

Для VS 2013 вместо этого используйте пакет nupengl.core .

2018-12-25T00:00Z

OpenGL должен присутствовать уже - вероятно, будет отсутствовать Freeglut / GLUT.

GLUT очень датирован сейчас и не активно поддерживается - поэтому вы, безусловно, должны использовать Freeglut. Вам не придется менять свой код вообще, и появляется несколько дополнительных функций.

Здесь вы найдете предварительно упакованные наборы файлов: Если вы не видите папку «lib», это потому, что вы не загрузили предварительно загруженные файлы, упакованный набор. «Двойные файлы Windows Мартина Пейна» размещены по ссылке выше и работают на Windows 8.1 с Visual Studio 2013 на момент написания этой статьи.

Когда вы их загрузите, вы обнаружите, что папка Freeglut имеет три подпапки: - папка bin: это содержит файлы dll для runtime - include: файлы заголовков для компиляции - lib: содержит файлы библиотеки для компиляции / ссылки

Инструкции по установке обычно предполагают перемещение этих файлов в папку visual studio и в системную папку Windows. Лучше избегать этого, поскольку это делает ваш проект менее переносимым и делает его намного сложнее, если вам когда-либо понадобится изменить версию библиотеки вы используете (старые проекты могут внезапно перестать работать и т. д.)

Вместо этого (извинения за любые несоответствия, я основываю эти инструкции на VS2010) ... - поместите папку freeglut в другое место, например C: \ dev - откройте свой проект в Visual Studio - откройте свойства проекта - там должна быть вкладка для VC ++ Directories , здесь вы должны добавить соответствующие папки include и lib, например: C: \ dev \ freeglut \ include и C: \ dev \ freeglut \ lib - (почти) Последний шаг - убедиться, что файл opengl lib фактически связан во время компиляции. Еще в свойствах проекта разверните меню компоновщика и откройте вкладку ввода. Для дополнительных зависимостей добавьте opengl32.lib (вы бы предположили, что это будет связано автоматически, просто добавив include GL / gl.h в ваш проект, но по какой-то причине это, похоже, не так)

На этом этапе ваш проект должен скомпилировать ОК. Чтобы запустить его, вам также нужно скопировать файлы freeglut.dll в папку проекта

2019-01-01T00:00Z

инструкции для Vs2012

Установка FreeGLUT

  1. Скачать «freeglut 2.8.1 MSVC Package» с сайта http://www.transmissionzero.co.uk/software/freeglut-devel/
  2. Извлеките сжатый файл freeglut-MSVC.zip в папку freeglut

    Внутри папки freeglut:

В 32-битных версиях окон

скопируйте все файлы в папку include / GL в папку C: \ Program Files \ Windows Kits \ 8.0 \ Include \ um \ gl

скопируйте все файлы в папку lib в папку C: \ Program Files \ Windows Kits \ 8.0 \ Lib \ win8 \ um \ (примечание: Lib \ freeglut.lib в папке переходит в x86)

Скопируйте файл freeglut.dll в C: \ windows \ system32

В 64-битных версиях окон: (не на 100% уверен, но попробуйте)

скопируйте все файлы в папку include / GL в папку C: \ Program Files (x86) \ Windows Kits \ 8.0 \ Include \ um \ gl

скопируйте все файлы в папку lib в папку C: \ Program Files (x86) \ Windows Kits \ 8.0 \ Lib \ win8 \ um \ (примечание: Lib \ freeglut.lib в папке переходит в x86)

Скопируйте файл freeglut.dll в C: \ windows \ SysWOW64