我跟随this tutorial学习OpenGL,但由于编译器无法找到其中一个头文件,我编译时遇到了问题。
这是我试图编译的文件:
Key Value
要编译,我使用
#include <glad/glad.h>
#include <GLFW/glfw3.h>
int main() {
return 0;
}
我收到以下错误:
$ gcc -o sandbox sandbox.cpp -lGL -lGLU -lglut
我按照this wiki 的前两部分安装了OpenGL和库。
我认为问题是错误的编译命令或我的OpenGL安装中的缺陷。
答案 0 :(得分:1)
GLAD是OpenGL的函数加载器。这个tutorial解释了如何设置它。
本教程解释了GLAD的目的:
由于OpenGL驱动程序有许多不同版本,因此大多数函数的位置在编译时都是未知的,需要在运行时查询。
GLAD的设置涉及使用Web服务器生成特定于GL版本,扩展和语言的源文件和头文件。然后将源文件和头文件放在项目的src中并包含目录。
答案 1 :(得分:0)
如果您正在查看这个简单的 GLFW example,您可以删除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