编译OpenGL程序(缺少GL / gl.h)

我是一个完整的Linux / Ubuntu菜鸟,所以我为这个问题的任何愚蠢部分道歉或跟进。

我正在尝试将我的软件工程类组编写的程序写入我的家用计算机。 在学校,我们有Linux,它将在那里编译和运行。 我下载了VMWare,在虚拟机上安装了Ubuntu,现在我正试图让我的程序打开。

但是,当我尝试运行我的make文件时,我收到一条错误消息

gcc -I../include -pthread -O1 -c rain.c In file included from rain.c:19:0: ../include/GL/glfw.h:176:21: fatal error: GL/gl.h: No such file or directory compilation terminated. make: *** [rain.o] Error 1 

有人会碰巧知道为什么它不能找到这个文件,什么时候它可以在我的学校电脑上? 我需要做些什么来下载它或者把它放到正确的位置?

我猜你没有任何dev软件包提供gl.h. apt-file是要使用的命令行工具。

首先,确保它是最新的:

 apt-file update 

现在你可以写一个搜索来回答“什么包提供了gl.h文件?”

 apt-file search "gl.h" 

我刚才没有一个ubuntu盒子来检查,但我猜结果会像mesa-dev或opengl-dev。

一旦你知道什么包提供“gl.h”,(让我们假装apt-file的结果是“libmesa-dev”),安装它:

 apt-get install libmesa-dev 

有关apt系列命令的更多信息: https : //help.ubuntu.com/community/AptGet/Howto

对于GL/gl.h使用:

 sudo apt install mesa-common-dev 

您可能还会发现这些有用,例如GL/glu.h

 sudo apt install libglu1-mesa-dev freeglut3-dev 

您还可以从源代码构建glproto( 链接 ),libdrm( 链接 ),然后是mesa( 链接 )。 虽然许多其他包可能包含此头文件,但转到源是很重要的。 这将减少安装的内存占用,并确保您拥有最新版本和/或最新版本。