Сообщение об ошибке: "KHR/khrplatform.h" не может быть открыт, но "khrplatform" не существует нигде в программе
Я пытаюсь открыть окно в OpenGL. В Visual Studio я установил каталог include со всеми моими заголовочными файлами, такими как glfw3.h и glad.h. Мои операторы включения правильно отформатированы:
#include <glad/glad/glad.h>
#include <GLFW/glfw3.h>
Существует дополнительный "рад /", потому что в проводнике файлов есть дополнительная папка "рад". Другой файл заголовка, содержащийся в папке include, называется "khrplatform.h". Это последовательность каталогов:
включить / рад /KHR/khrplatform.h
Вот код, который я написал, чтобы открыть окно:
#include <glad/glad/glad.h>
#include <GLFW/glfw3.h>
int main() {
glfwInit(); //initializes the openGL window
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3); //This line and the next set the desired version of glfw (major.minor)
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);
glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE); //sets openGL to the core profile (fewer functions)
return 0;
}
В моем проекте Visual Studio также есть файл glad.c, необходимый для программирования открытия окон. Полученное сообщение об ошибке указывает на ошибку, как в файле glad.c. Вот ошибка:
1>------ Build started: Project: OpenGL_SampleProject, Configuration: Debug Win32 ------
1>glad.c
1>c:\users\david\documents\opengl\libs_include\include\glad\glad\glad.h(95): fatal error C1083: Cannot open include file: 'KHR/khrplatform.h': No such file or directory
1>Done building project "OpenGL_SampleProject.vcxproj" -- FAILED.
Проблема в том, что текст "khrplatform.h" вообще не отображается в glad.c. Так что я понятия не имею, откуда возникла ошибка. Может кто-то с опытом установки и использования OpenGL ответить на этот вопрос для меня?
0 ответов
В glad.h включается khrplatform.h. Используемый точный синтаксис:
#include <KHR/khrplatform.h>
Поскольку вы добавили еще одну папку с удовольствием, вы установили каталог include на один уровень выше. Это означает, что glad.h на самом деле должен ссылаться:
#include <glad/KHR/khrplatform.h>
если бы ваша структура папок выглядела так:
-dependencies (установлен как включаемый каталог в Visual Studio)
----рад
-------рад
---------- рад.х
------- ХР
---------- khrplatform.h
Вам нужно будет изменить каталог include на это:
-зависимости
---- рад (установлен как включаемый каталог в Visual Studio)
-------рад
---------- рад.х
------- ХР
---------- khrplatform.h
Потому что это сделало бы <KHR/khrplatform.h>
в рад.х поправьте.
Вы также можете просто избавиться от этой дополнительной папки радости, но если вы действительно хотите ее сохранить, вам придется изменить свои подключаемые каталоги в Visual Studio.
Конкретную настройку, которую вы хотите изменить, можно найти так:
Щелкните правой кнопкой мыши имя проекта в проводнике решений -> Свойства -> C/C++ -> Общие
В настройке "Дополнительные подключаемые каталоги" вы должны изменить путь на указанный выше.
В качестве альтернативы вы можете изменить файл glad.h, но я не рекомендую это делать. Поскольку вы можете обновиться с радостью в какой-то момент в будущем, это будет означать, что вам придется вручную изменить эту строку кода снова.