我正在学习这个教程来学习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安装中的缺陷。
3条答案
按热度按时间gorkyyrv1#
GLAD是OpenGL的函数加载器。本教程将介绍如何设置它。
本教程解释了GLAD的用途:
由于OpenGL驱动程序有许多不同的版本,因此大多数函数的位置在编译时是未知的,需要在运行时查询。
GLAD的设置涉及到使用Web服务器生成特定于GL版本、扩展名和语言的源文件和头文件。然后,源文件和头文件将放置在项目的src和include目录中。
qq24tv8q2#
如果您正在查看这个简单的GLFW example,则可以删除glad/gl.h include,并将
如果你使用的是linux,比如ubuntu,你不需要glad,只需要添加这两个头文件:
如果示例保存为glfw_ex2.c,则可以在命令行中编译它,如下所示:
当然,对于本例,linmath.h必须位于同一目录中。
如果缺少任何内容,您可以像这样安装它,然后再次尝试编译:
然后像这样运行:
jvlzgdj93#
如此处所述https://www.glfw.org/docs/latest/quick_guide.html#quick_init_term
GLFW标头可以检测到大多数此类标头(如果先包含它们)。要确保不存在标头冲突,可以在GLFW标头之前定义GLFW_INCLUDE_NONE,以显式禁用包含开发环境标头。这还允许以任何顺序包含这两个标头。
希望这对你有帮助:)