我正在按照 本教程 学习 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.
我遵循了 此 wiki 的前两部分 安装 OpenGL 和库。
我认为问题要么是错误的编译命令,要么是我的 OpenGL 安装中存在缺陷。
GLAD 是 OpenGL 的函数加载器。本教程解释了如何设置。
教程解释了 GLAD 的目的:
由于OpenGL驱动有很多不同的版本,其大部分函数的位置在编译时是未知的,需要在运行时查询。
GLAD 的设置涉及使用 Web 服务器生成特定于您的 GL 版本、扩展和语言的源文件和头文件。然后将源文件和头文件放置在项目的 src 和 include 目录中。
如果您正在查看这个简单的GLFW示例,您可以删除glad/gl.h包含,以及
gladLoadGL(glfwGetProcAddress);
再往下走。 如果您使用的是 Linux,例如 ubuntu, 你不需要很高兴,只需添加这两个标题即可:
#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
我建议你在VSCode中按F5运行并调试程序,如果你将目录中名为“mingw32-make.exe”的文件更改为“make.exe”,你可以尝试执行命令“make run”存在文件“makefile”