Первое, что нам нужно сделать, прежде чем мы начнем программировать графику — это создать контекст OpenGL и окно приложения для рисования. Однако данные операции являются специфичными для каждой операционной системы, поэтому OpenGL целенаправленно пытается абстрагироваться от них. Это означает, что мы самостоятельно должны создать окно, определить контекст и обрабатывать пользовательский ввод.
К счастью, существует довольно много библиотек, которые обеспечивают необходимый нам функционал, при этом некоторые из них специально нацелены на работу с OpenGL. Эти библиотеки избавят нас от всей специфической работы, связанной с особенностями конкретной операционной системы. Наиболее популярными библиотеками являются: GLUT, SDL, SFML и GLFW. На этих уроках мы будем использовать библиотеку GLFW. Вы также можете использовать и любую другую библиотеку из предоставленного списка, т.к. установка и настройка для большинства из них аналогична установке и настройке GLFW.
Библиотека GLFW
GLFW (англ. «Graphics Library FrameWork») — это библиотека, написанная на языке Си, специально предназначенная для работы с OpenGL. Библиотека GLFW предоставит нам все необходимые инструменты, которые потребуются для рендеринга на экран различных объектов. Благодаря этому мы сможем создавать контексты OpenGL, определять параметры окна и обрабатывать пользовательский ввод, что вполне коррелирует с нашими целями.
Основное внимание на этом и следующем уроках уделяется изучению библиотеки GLFW, созданию корректного контекста OpenGL, а также простого окна, в котором мы и будем рисовать наши объекты. На этом уроке мы пошагово рассмотрим установку библиотеки GLFW, а также процесс сборки и компиляции программы в связке с GLFW.
Примечание: На момент написания данной статьи в качестве среды разработки мы будем использовать Microsoft Visual Studio 2019 (обратите внимание, что наши действия будут аналогичными и с более старыми версиями Visual Studio). Если же вы используете более старую версию Visual Studio (или вообще другую среду разработки), то можете быть спокойны, т.к. процесс установки и настройки GLFW аналогичен в большинстве IDE.
Сборка GLFW
Библиотеку GLFW можно скачать с официального сайта. Стоит отметить, что GLFW уже имеет предварительно скомпилированные бинарные и заголовочные файлы для Visual Studio 2010-2019, но для полноты картины их мы использовать не будем, а вместо этого вручную скомпилируем GLFW из исходного кода. Это делается для того, чтобы вы сами прочувствовали процесс компиляции библиотек с открытым исходным кодом, поскольку не каждая подобная библиотека будет предоставлять возможность скачать предварительно скомпилированные бинарные файлы. Итак, давайте загрузим пакет с исходным кодом.
Примечание: Мы будем собирать все библиотеки в формате 64-битных бинарных файлов, поэтому убедитесь, что скачиваете и используете именно 64-битные бинарные файлы.
После загрузки пакета с файлами исходного кода извлеките и откройте его содержимое. Нас интересуют следующие вещи:
библиотека, которая будет получена в результате компиляции;
папка include
.
Компиляция библиотек из исходного кода гарантирует, что полученная нами библиотека идеально подойдет для нашего процессора и операционной системы, в то время как предварительно скомпилированные бинарные файлы не всегда могут этим похвастаться (иногда они вообще недоступны для вашей системы). Однако проблема проектов, распространяющихся под эгидой открытого программного обеспечения, заключается в том, что не все используют одну и ту же IDE или систему сборки для разработки своего приложения, а это значит, что предоставленные файлы проекта/решения могут быть несовместимы с настройками IDE у других людей. Следовательно, каждый конечный пользователь должен настроить свой собственный проект/решение с учетом полученных *.с
/*.cpp
и *.h
/*.hpp
файлов, что почти всегда является довольно трудоемким и громоздким процессом. Но не спешите расстраиваться, для решения данной проблемы уже существует удобный инструмент сборки проектов под названием CMake.
CMake
CMake — это инструмент, который с использованием заранее определенных сценариев может из коллекции файлов исходного кода сгенерировать файлы проектов/решений под выбранную пользователем IDE (например, для Visual Studio, Code::Blocks или Eclipse). Он позволит нам из исходного пакета файлов GLFW создать файл проекта под среду разработки Visual Studio 2019, а затем данный файл мы сможем использовать для компиляции библиотеки. Но сначала нам нужно его скачать, а затем установить.
После установки CMake у вас будет 2 варианта:
запустить CMake из командной строки;
запустить CMake через графический интерфейс.
Поскольку мы не стремимся всё усложнять, то остановимся на варианте с использованием графического интерфейса. Для работы с CMake нам потребуется указать папку с файлами исходного кода проекта (в нашем случае glfw-3.3.2
) и папку назначения для бинарных файлов. Для папки исходного кода мы собираемся выбрать корневую папку загруженного исходного пакета GLFW, а для папки сборки мы создадим новый каталог build
:
После того, как мы прописали пути для исходной и целевой папок, нам нужно нажать кнопку Configure
, чтобы CMake смог просмотреть исходные файлы GLFW и выбрать необходимые параметры для сборки.
В следующем окне необходимо задать используемую версию Visual Studio. Т.к. работать мы будем в Visual Studio 2019, то выбираем опцию "Visual Studio 16 2019"
:
Далее CMake отобразит возможные варианты сборки библиотеки. Можно оставить значения по умолчанию и снова нажать кнопку Configure
, чтобы сохранить настройки:
После установки параметров мы нажимаем кнопку "Generate"
, в результате чего в папке build
будут созданы необходимые файлы проекта.
Компиляция проекта
Теперь, зайдя в папку build
, среди всего прочего можно увидеть файл с именем GLFW.sln
, открываем его с помощью Visual Studio 2019:
Поскольку CMake сгенерировал файл проекта, который уже содержит соответствующие параметры конфигурации, нам остается лишь реализовать решение. При этом CMake должен был автоматически настроить вариант компилирования решения в виде 64-битной библиотеки. Благодаря этому мы получим скомпилированный файл библиотеки с именем glfw3.lib
, который будет находиться в папке build/src/Debug
.
После того, как мы создали библиотеку, нужно убедиться, что IDE знает, где найти данный файл, а также другие подключаемые файлы нашей программы OpenGL. Решить этот вопрос можно двумя способами:
Способ №1: Можно скопировать содержимое папки include
проекта GLFW в соответствующую папку include
вашей IDE или компилятора, а также скопировать полученный файл glfw3.lib
в соответствующую папку /lib
вашей IDE или компилятора. Данный способ вполне рабочий, но мы его не рекомендуем, так как новая установка IDE или компилятора приведет к тому, что вам заново придется подключать необходимые файлы.
Способ №2: Вы можете создать новую папку, которая будет содержать все заголовочные файлы и файлы из сторонних библиотек. На эту папку вы впоследствии сможете ссылаться из своей IDE или компилятора. Например, можно создать папку, в которой будут находиться папки Lib
и Include
. В них мы будем хранить все наши библиотечные и подключаемые файлы, которые собираемся использовать для наших OpenGL-проектов. Получается, что все сторонние библиотеки будут организованы в одном месте (и их можно будет совместно использовать на нескольких компьютерах). Однако, каждый раз при создании нового проекта, мы должны будем указывать IDE соответствующие пути к этим папкам.
Как только необходимые файлы будут сохранены в выбранном вами месте, мы сможем приступить к созданию нашего первого OpenGL-GLFW-проекта.
Наш первый проект
Для начала давайте откроем Visual Studio и создадим новый проект. Для этого нужно выбрать тип проекта "C++"
, а далее — "Пустой проект"
(не забудьте дать проекту подходящее имя):
Теперь у нас есть рабочее пространство для создания нашего самого первого OpenGL-приложения!
Линкинг проекта
Для того, чтобы наш проект мог использовать GLFW, нам нужно связать с ним полученную библиотеку. Это можно сделать, указав в настройках линкера, что мы хотим использовать библиотеку glfw3.lib
, но проект пока не знает где её искать, т.к. все подобные файлы мы переместили в другую папку. Таким образом, сначала мы должны добавить эту папку в наш проект.
Для этого нажмите правой кнопкой мышки на имя проекта в "Обозреватель Решений" > "Свойства"
. В появившемся окне выберите "Каталоги VC++" > "Каталоги библиотек"
:
Здесь вы можете добавить свои собственные каталоги, чтобы проект знал, где искать необходимые файлы. Это можно сделать, вставив вручную путь до каталога или щелкнув по соответствующей строке и выбрав пункт <Изменить…>
, в результате чего откроется следующее окно:
Здесь вы можете добавить столько дополнительных каталогов, сколько захотите, и с этого момента IDE при поиске файлов библиотек также будет просматривать и эти директории. Поэтому, как только вы подключите папку Lib
из проекта GLFW, вы сможете использовать все файлы библиотек из этой папки. Аналогично обстоят дела и с добавлением папки Include
для заголовочных файлов.
Поскольку для VS были указаны все необходимые файлы, то мы, наконец, можем связать GLFW с нашим проектом, перейдя в раздел "Компоновщик" > "Ввод"
:
Чтобы связать библиотеку, нам нужно указать для компоновщика её имя. Так как библиотека называется glfw3.lib
, то мы добавляем название этого файла в раздел "Дополнительные зависимости"
(вручную или же через пункт <Изменить…>
), и с этого момента при запуске процесса компиляции GLFW будет связан с нашим проектом. В дополнение к GLFW мы также должны добавить ссылки на библиотеку OpenGL, но данные действия будут отличаться, в зависимости от (вашей) используемой операционной системы:
Библиотека OpenGL в Windows. Если вы используете операционную систему Windows, то необходимый нам файл библиотеки OpenGL32.Lib
, входящий в пакет Microsoft SDK, уже есть в составе Visual Studio и не требует отдельной установки. Поскольку мы используем компилятор VS и работаем в операционной системе Windows, то всё, что вам нужно сделать — это добавить название файла OpenGL32.Lib
к общему списку параметров компоновщика.
Примечание: В примечании подраздела «Сборка GLFW» сказано, что мы собираем все библиотеки в формате 64-битных бинарных файлов. В то же время число «32» в названии файла OpenGL32.Lib может вызвать некоторую путаницу, как бы намекая на то, что в данном случае используется именно 32-битная версия библиотеки. На самом деле это не так. Если у вас установлен пакет Microsoft SDK, то достаточно просто зайти в папку C:\Program Files (x86)\Windows Kits\10\Lib\[Номер_версии_SDK]\um\x64\ и убедиться, что в ней среди прочих файлов находится и наша библиотека:
Больше того, если зайти в папку C:\Program Files (x86)\Windows Kits\10\Lib\[Номер_версии_SDK]\um\x86\, то и там можно встретить файл OpenGL32.Lib:
Другими словами, под одним названием файла OpenGL32.Lib существует две различные версии (32-битная и 64-битная) библиотеки. Поэтому просто не обращайте внимание на то, что в её имени есть часть «32». Всё прекрасно работает и в 64-битном окружении.
Библиотека OpenGL в Linux. Если вы работаете в операционной системе Linux, то вам нужно подключить библиотеку libGL.so
с помощью ключей –lGL
, добавляемых к параметрам вашего компоновщика. Если вы не можете найти данную библиотеку, то вам, вероятно, необходимо установить любой из пакетов: Mesa, NVidia или AMD dev.
Затем, после добавления библиотек GLFW и OpenGL в настройки компоновщика, вы сможете подключить заголовочные файлы GLFW следующей строкой кода:
1 |
#include <GLFW\glfw3.h> |
Примечание: Для пользователей Linux, использующих компилятор GCC, скомпилировать проект помогут следующие параметры командной строки:
-lglfw3 -lGL -lX11 -lpthread -lXrandr -lXi -ldl
Неправильное линкование соответствующих библиотек приведет к возникновению ошибок. Будьте внимательны при копировании данных параметров, поскольку знак -
перед указанными параметрами может скопироваться некорректно, и вы получите ошибку. Лучше вручную пропишите данный код.
На этом установка и настройка GLFW завершена.
GLAD
Поскольку OpenGL на самом деле является лишь стандартом/спецификацией, то производитель драйверов должен реализовать спецификацию для драйвера, поддерживаемого конкретной видеокартой. Из-за того, что существует множество различных версий драйверов OpenGL, расположение большинства OpenGL-функций во время компиляции не известно и должно быть запрошено во время выполнения программы. Задача разработчика состоит в том, чтобы получить расположение нужных ему функций и сохранить их в виде указателей на функции для последующего использования. Получение мест расположений этих функций зависит от конкретной операционной системы.
В Windows это выглядит примерно следующим образом:
1 2 3 4 5 6 7 8 9 |
// Определение прототипа функции typedef void (*GL_GENBUFFERS) (GLsizei, GLuint*); // Поиск функции и её присваивание указателю на функцию GL_GENBUFFERS glGenBuffers = (GL_GENBUFFERS)wglGetProcAddress("glGenBuffers"); // Теперь функцией можно пользоваться, как обычно unsigned int buffer; glGenBuffers(1, &buffer); |
Как вы наверняка могли заметить, данный код выглядит несколько сложным, к тому же разработчикам придется каждый раз проходить через этот громоздкий процесс, совершая данные действия для каждой функции, которая может понадобиться и которая еще не была объявлена. К счастью, есть решение — библиотека GLAD.
Установка GLAD
GLAD — это библиотека с открытым исходным кодом, которая управляет всей той громоздкой работой, о которой мы говорили выше. GLAD имеет несколько иную настройку конфигурации, чем большинство распространенных библиотек с открытым исходным кодом. Она использует веб-сервис, где мы можем сообщить GLAD, для какой версии OpenGL мы хотели бы определить и загрузить все соответствующие функции OpenGL.
Перейдите в веб-сервис GLAD, убедитесь, что в поле «Language» выбран язык "C/C++"
, и в разделе «API» выберите версию OpenGL — 3.3
(именно её мы и будем использовать; хотя более новые версии также подойдут). Кроме того, убедитесь, что в поле «Profile» установлено "Core"
:
Также параметр "Generate a loader"
должен быть отмечен галочкой. Пункт «Extensions» мы пока пропустим, остается нажать кнопку "Generate"
, чтобы создать нужные нам файлы библиотеки:
К этому моменту GLAD предоставит вам возможность скачать zip-архив, содержащий в себе две подключаемые папки и файл glad.c
. Вам нужно скопировать обе эти папки (glad
и KHR
) в свою папку с подключаемыми файлами (или добавьте дополнительный элемент, указывающий на эти папки в свойствах проекта), а также добавить файл glad.c
в свой проект.
После выполнения этих шагов вы сможете использовать следующую директиву include:
1 |
#include <glad/glad.h> |
Теперь, при попытке скомпилировать проект, у вас не должно возникать никаких ошибок.
На следующем уроке мы рассмотрим использование GLFW, настройку контекста OpenGL и создание окна. Обязательно убедитесь, что все ваши include-
и library-
каталоги являются корректными, и что имена библиотек в настройках компоновщика соответствуют указанным библиотекам.
Дополнительные ресурсы
GLFW: Window Guide — официальное руководство GLFW по настройке и конфигурации окна GLFW.
Создание приложений — предоставляет отличную информацию о процессе компиляции/линкинга вашего приложения и большой список возможных ошибок (+ решения), которые могут возникнуть.
GLFW с Code::Blocks — рассказывает об использовании GLFW с Code::Blocks.
Использование CMake — краткий обзор того, как запустить CMake в Windows и в Linux.
Polytonic/Glitter — простой шаблонный проект, который предварительно настроен со всеми соответствующими библиотеками; отлично подойдет, если вам нужен пример того, что можно сделать при помощи OpenGL, без необходимости компилировать все библиотеки самостоятельно.
В общем, если у кого-то возникнет ошибка:
LNK2019 ссылка на неразрешенный внешний символ main в функции "int __cdecl invoke_main(void)" (?invoke_main@@YKMNA)
Просто знайте, что вы создавали пустой проект C++ и точка входа в нём не указана. Следовательно, для решения проблемы достаточно добавить функцию int main()
Товарищи, а не подскажите, куда необходимо вставлять файл glad.c? В корневой каталог проекта или куда-то ещё?
Рядышком с main.cpp
Ошибка LNK1107 недопустимый или поврежденный файл: не удается прочитать по 0xEB67
Мб кто-то с таким сталкивался?
fatal error LNK1104: не удается открыть файл "glfw3.lib OpenGL32.lib"
Делал все так, как описано в статье. В чем может быть проблема?
Возникает ошибка в CMake
CMake Error: The source directory "D://glfw-3.3.4/glfw-3.3.4" does not exist.
Как ее решить?
Когда вы скачивали сборку GLFW, то вероятнее всего скачали по кнопке 64-bit Windows binaries, когда необходимо было скачать по кнопке Source package.
Если кто-то также как я не может добавить include с GLFW\glfw3.h, то в свойствах проекта надо зайти в C/C++ -> Общие -> Дополнительные каталоги включаемых файлов, и добавить туда путь до вашей папки include
Делал всё по инструкции но, при попытке запустить программу появляется ошибка что файл OpenGL.exe не найден. С чем это может быть связано?
Возникли проблемы с конфигурацией CMAKE
(CMake Error: The source directory "C:/glfw" does not appear to contain CMakeLists.txt.
Specify —help for usage, or press the help button on the CMake GUI.)
Помогите пожалуйста
Когда вы скачивали сборку GLFW, то вероятнее всего скачали по кнопке 64-bit Windows binaries, когда необходимо было скачать по кнопке Source package.
Всё сделал по инструкции, всё работает, но после того, как я вставляю код из документации GLFW появляются ошибки:
LNK2001 неразрешенный внешний символ glad_glClear.
LNK1120 неразрешенных внешних элементов: 1
Здравствуйте, в этой статье есть следующий фрагмент:
"Примечание: Для пользователей Linux, использующих компилятор GCC, скомпилировать проект помогут следующие параметры командной строки:
-lglfw3 -lGL -lX11 -lpthread -lXrandr -lXi –ldl
Неправильное линкование соответствующих библиотек приведет к возникновению ошибок.".
Если внимательно посмотреть, то можно увидеть, что знак минуса у флага ldl немного длиннее остальных минусов у других флагов. При попытке компиляции я просто копировал данную строчку и естественно получал ошибку. Потратил полтора дня чтобы найти в чём же всё-таки проблема. Исправьте пожалуйста 😀
Спасибо за замечание, исправил)
Добрый день! Все сделала по вашей инструкции. Но проблема возникла в файле opengl32.lib. Установила SDK из Visual Studio Installer, но этого файла там нет. Где можно его найти?
Я потратил несколько вечеров в попытках запустить пример с кодом с сайта GLFM, поэтому оставлю здесь решение тех проблем, с которыми я столкнулся.
Во-первых, при указании расположения включаемых файлов стоит обратить внимание на конфигурацию, то есть указывая путь для конфигурации release win 32, а запуская debug x64 ничего работать не будет.
Во-вторых, библиотеки opengl32.lib в ходящей в пакет SDK у меня не оказалось. Решил я эту проблему переустановкой пакета SDK, через установщик visual studio.
И в-третьих, не совсем проблема, но то, что меня смутило, первый запуск примера с кодом сопровождался скачиванием внешних символов, растянувшееся на добрые полчаса (при моем не самом слабом железе), так что я почти уверовал в поломку программы, к счастью закончилось все успешно, и я получил долгожданное окошечко Hello world.
Надеюсь это кому-нибудь поможет.
(я бы прикрепил скрины, но как это сделать не разобрался)
АНАТОЛИЙ!!! СПАСИБО ВАМ ОГРОМНОЕ!!!
ВЫ МЕНЯ СПАСЛИ!!!
Вы тут говорите про скачивание внешних символов при первом запуске. А можете подсказать как это сделать?
У меня при первом запуске выдает ошибку неразрешенные внешние символы.
Здравствуйте. Возникли ошибки при конечном запуске программы. Вот сами ошибки:
1)Ошибка LNK2019 ссылка на неразрешенный внешний символ _main в функции "int __cdecl invoke_main(void)" (?invoke_main@@YAHXZ)
2)Предупреждение LNK4272 тип компьютера библиотеки "x64" конфликтует с типом целевого компьютера "x86"
3)Серьезность Код Описание Проект Файл Строка Состояние подавления
Ошибка LNK1120 неразрешенных внешних элементов: 1
Подскажите, что делать?
Папки glad, KHR, GLFW у меня лежат в папке include, которую я подключил в "Включаемые каталоги".
Библиотеку glfw3.lib я положил в папку Lib (путь такой-жа как и у include)
Файл glad.c я положил по видео в ютубе в "файлы ресурсов"
Уже не знаю, что делать
Вроде решил проблему. Ну не знаю, точно или нет, так как эта ошибка осталась, но при пробном запуске кода (он есть на сайте GLFW в разделе документация) у меня стало запускаться окно, хотя до этого такого не было. Вся проблема была в том, что я в свойствах проекта не установил разрядность системы x68 (по умолчанию стоит x86). Потом в самом проекте я установил вверху разрядность x64. Ошибка исчезла (но только при запуске пробного кода). Если убрать код, то она продолжает выскакивать. Я так посмотрел, и вроде она связана с тем, что нет функции main. Наверно поэтому ошибка и исчезает при запуске кода, так как там эта функция присутствует (а может потому, что я сам файл с кодом назвал main). В общем у меня нет опыта, чтоб понять причину. Но хотелось бы чтоб во всех случаях не вылезала ошибка. Если кто знает, объясните)
>Я так посмотрел, и вроде она связана с тем, что нет функции main. Наверно поэтому ошибка и исчезает при запуске кода, так как там эта функция присутствует.
Так и есть. И тут дело уже в самом языке C++: ну не любит компилятор, когда нет функции main(), для него она служит точкой входа. 🙂
"Каждая программа, написанная на языке C++, должна содержать главную функцию main(). Именно с первого стейтмента, находящегося в функции main(), и начинается выполнение всей программы. "
https://ravesli.com/urok-8-struktura-programm-s/#toc-2
>Но хотелось бы чтоб во всех случаях не вылезала ошибка. Если кто знает, объясните)
Так не получится. Без функции main() вы всегда будете получать ошибку.
Тогда спасибо)
У меня возникло много трудностей при подключении всех библиотек, используя эту статью.
Для всех, у кого не получилось посмотрите это видео: https://www.youtube.com/watch?v=kGupc_M5o10
Здесь все показывается. У меня решились проблемы.
А автору спасибо за серию статей. Очень мало годных статей на тему OpenGL в интернете.
>>У меня возникло много трудностей при подключении всех библиотек
Например?
P.S.: Я сам несколько раз подключал с нуля все библиотеки по изложенным в статье шагам. Никаких проблем не было…
Извиняюсь, мой недочет.
Большинство ошибок были из-за моей невнимательности. Единственное, файл opengl32.lib в visual studio 2019 я так и не нашел. Но это решилось установкой SDK. Также CMake не находил студию 2017, однако это было решено переустановкой по другому пути.
Рад, что всё получилось 🙂
Простите а папка Include подключается в каталоги библиотек вместе с Lib?И где находится общий список параметров компановщика для opengl32.lib?
>>Простите а папка Include подключается в каталоги библиотек вместе с Lib?
Попробуйте сделать так, как указано на картинке из статьи. На всякий случай ниже будет ссылка на неё 🙂
https://ravesli.com/wp-content/uploads/2020/04/6.png
>>И где находится общий список параметров компановщика для opengl32.lib?
В этой статье, начиная со слов:
"Поскольку для VS были указаны все необходимые файлы, то мы, наконец, можем связать GLFW с нашим проектом, перейдя в раздел "Компоновщик" > "Ввод":"
…и ниже скриншот:
https://ravesli.com/wp-content/uploads/2020/04/8.png
Здравствуйте, я сделал установку GLFW по вашей инструкции способом #2, Visual Studio не видит файл. Даже все директории переименовал как у вас. Всё равно. Тем не менее включая в папку Include glfw3.h все ошибки пропали. Это не критично?
Чтобы убедиться: путь до директории include Visual Studio 2019: C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\VS\include?
Нет, абсолютно не критично.
P.S.: Попробуйте открыть свой проект, далее в верхнем меню выбрать Проект->Свойства->Свойства конфигурации-> С/С++ -> Общие — > (справа)Дополнительные каталоги включаемых файлов, добавить путь к вашей папки с заголовочными файлами. На всякий случай вот для наглядности ссылка на картинку:
https://ibb.co/d4T91dw
Здравствуйте! Уже 12 дней я пытался настроить GLFW и GLAD (Visual Studio не тянет прям никак) и пришёл к тому что в Code::Blocks проект собирается но только при изменении glad.h, glad.c, и собственно кода чтобы они все включали файлы по абсолютному пути. Это немного неудобно, как указать например относительный путь в моём коде к glfw.h который находится в папке проекта\include?
Доброго времени суток. Сделал установку по вашей инструкции. Возникла проблема со следующим сообщением в активной строке:
Программа "[11520] 0у.exe" завершилась с кодом -1073741515 (0xc0000135) 'Зависимый DLL-файл не найден'.
В выплывающем окне следующий текст:
"Не удается продолжить выполнение кода, поскольку система не обнаружила glfw3.dll. Для устранения этой ошибки попробуйте переустановить программу.
Подскажите, пожалуйста, как пофиксить
Закинь в папку со своим 0у.exe файл glfw3.dll. Если ты не скомпилировал из исходников, то по ссылке на сайт GLFW скачай скомпилированную версию, согласно своей ОС. Этот файл будет в архиве.
Опишите подробнее, где конкретно появляется данная ошибка.
Записал, что не получилось (и как устанавливал):
https://youtu.be/mt_zGXXA4yw
Добрый день.
Посмотрел ваше видео. На днях я написал дополнение к данному уроку, в котором описал установку и настройку проекта с использованием CodeBlocks в Linux. Статья уже отправлена на рассмотрение Администратору и в ближайшее время она будет опубликована на сайте 🙂
Понял. Спасибо.
Жду с нетерпением следующий урок
Обязательно будут. 🙂
Здравствуйте, у меня возникла проблема при компиляции.
В файле glad.h пишет: "директива #error: OpenGL header already included, remove this include, glad already provides it". Подскажите, пожалуйста, что делать?
На каком этапе урока происходит данная ошибка?
На последнем этапе, когда пытаюсь подключить GLAD.
Можете выложить скриншот вашего кода с ошибкой компилятора?
Я нашел в интернете как решить эту проблему. Сначала надо подключить GLAD, а только потом GLFW. Надо только было лучше погуглить
просто поставь инклюд glad.h перед glfw.h, ошибка происходит потому что второй отчасти зависит от первого, и если объявить его раньше то Glad будет ругаться. и вообще лучше объявляй его самым первым, потому что он и на другие библиотечные хэдеры может ругатьсяю
Напишите, как установить на Debian 10 для Code::Blocks (или другой IDE).
После нажатия на Configure выдал ошибку Could NOT find Doxygen (missing: DOXYGEN_EXECUTABLE) . И нет папки build/src/Debug и файла glfw3.lib (искал по всему диску командой
find / -iname "*glfw3*"
, нету нигде.
Не могу, в общем, разобраться.
>>После нажатия на Configure выдал ошибку Could NOT find Doxygen (missing: DOXYGEN_EXECUTABLE)
Добрый день.
Самый простой способ решить проблему — это снять отметку с пункта GLFW_BUILD_DOCS (см. скриншот №3) и снова нажать Configure.
Привет! У меня та же проблема была. Короче, фишка в том, что надо сперва собрать решение glfw.sln . После этого появится папка Debug, а в ней уже glfw3.lib