opengl 〈高兴/高兴. h>:无此文件或目录

d7v8vwbk  于 2023-02-15  发布在  其他
关注(0)|答案(3)|浏览(269)

我正在学习这个教程来学习OpenGL,但是我在编译时遇到了麻烦,因为编译器找不到其中一个头文件。
这是我试图编译的文件:

#include <glad/glad.h>
#include <GLFW/glfw3.h>

int main() {    
  return 0;
}

为了编译,我使用了

$ gcc -o sandbox sandbox.cpp -lGL -lGLU -lglut

我得到了以下错误:

sandbox.cpp:1:23: fatal error: glad/glad.h: No such file or directory
#include <glad/glad.h>
                   ^
compilation terminated.

我按照this wiki的前两部分安装了OpenGL和库。
我认为问题要么是错误的编译命令,要么是我的OpenGL安装中的缺陷。

gorkyyrv

gorkyyrv1#

GLAD是OpenGL的函数加载器。本教程将介绍如何设置它。
本教程解释了GLAD的用途:
由于OpenGL驱动程序有许多不同的版本,因此大多数函数的位置在编译时是未知的,需要在运行时查询。
GLAD的设置涉及到使用Web服务器生成特定于GL版本、扩展名和语言的源文件和头文件。然后,源文件和头文件将放置在项目的src和include目录中。

qq24tv8q

qq24tv8q2#

如果您正在查看这个简单的GLFW example,则可以删除glad/gl.h include,并将

gladLoadGL(glfwGetProcAddress);

如果你使用的是linux,比如ubuntu,你不需要glad,只需要添加这两个头文件:

#include <GLES2/gl2.h>
#include <EGL/egl.h>

如果示例保存为glfw_ex2.c,则可以在命令行中编译它,如下所示:

g++ glfw_ex2.c -lglfw -lGLESv2

当然,对于本例,linmath.h必须位于同一目录中。
如果缺少任何内容,您可以像这样安装它,然后再次尝试编译:

sudo apt install libglfw3-dev libgles2-mesa-dev libegl1-mesa-dev

sudo apt install build-essential

然后像这样运行:

./a.out

jvlzgdj9

jvlzgdj93#

如此处所述https://www.glfw.org/docs/latest/quick_guide.html#quick_init_term
GLFW标头可以检测到大多数此类标头(如果先包含它们)。要确保不存在标头冲突,可以在GLFW标头之前定义GLFW_INCLUDE_NONE,以显式禁用包含开发环境标头。这还允许以任何顺序包含这两个标头。

#define GLFW_INCLUDE_NONE
#include <GLFW/glfw3.h>
#include <glad/glad.h>

希望这对你有帮助:)

相关问题