Сообщение об ошибке: "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, но я не рекомендую это делать. Поскольку вы можете обновиться с радостью в какой-то момент в будущем, это будет означать, что вам придется вручную изменить эту строку кода снова.

Другие вопросы по тегам