我正在尝试在我的代码中使用glad.h。我正在使用Visual Studio 2013进行编程。由于某些原因,它给出了错误C1189: #error : OpenGL header already included, remove this include, glad already provides it
有人能帮我解决这个问题吗?
这些是我包含的头文件:
#include <glad/glad.h>
#include <GLFW/glfw3.h>
#include <iostream>
我正在尝试在我的代码中使用glad.h。我正在使用Visual Studio 2013进行编程。由于某些原因,它给出了错误C1189: #error : OpenGL header already included, remove this include, glad already provides it
有人能帮我解决这个问题吗?
这些是我包含的头文件:
#include <glad/glad.h>
#include <GLFW/glfw3.h>
#include <iostream>
我刚刚倒转了glfw3.h
和glad.h
的包含顺序,就像这样:
#include <glad\glad.h>
#include <GLFW\glfw3.h>
使用GLFW时,将GLFW_INCLUDE_NONE添加到Properties->C/C++->Preprocessor->Preprocessor Definitions中可以解决这个问题。
来自https://www.glfw.org/docs/3.3/build_guide.html#GLFW_INCLUDE_NONE
如果您使用OpenGL扩展加载库(如glad),则应在GLFW之前包含扩展加载器头文件。 GLFW尝试检测在其之前包含的任何OpenGL或OpenGL ES头文件或扩展加载器头文件,然后将禁用默认的OpenGL头文件的包含。大多数扩展加载器还定义了禁用其下方类似头文件的宏。
#include <glad/gl.h>
#include <GLFW/glfw3.h>
#define GLFW_INCLUDE_NONE
#include <GLFW/glfw3.h>
#include <glad/gl.h>
GLFW_INCLUDE_NONE
(或在包含GLFW头文件之前定义它)。这将阻止GLFW包含OpenGL头文件。 - Gambit