I am a complete Linux/Ubuntu noob, so I apologize for any dumb portions of this question or follow up ones.

I am trying to get a program that my software engineering class's group wrote onto my home computer. At school, we have Linux, and it will compile and run fine there. I downloaded VMWare, installed Ubuntu on a virtual machine, and now am trying to get my program to open.

When ever I try to run my make file however, I get an error that says

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

Would anyone happen to know why it can't find this file, when it can on my school computers? And what I'd need to do to download it or get it in the right spot?

4 Answers 4


I'd guess you don't have whatever dev package(s) provide gl.h. apt-file is the command line tool to use.

First, make sure it's up to date:

apt-file update

Now you can write a search to answer "what package provides the gl.h file?"

apt-file search "gl.h"

I don't have an ubuntu box just now to check, but I'd guess the result will be something like mesa-dev or opengl-dev.

Once you know what package provides "gl.h", (let's pretend the result from apt-file is "libmesa-dev"), install it:

apt-get install libmesa-dev

More info on the apt family of commands: https://help.ubuntu.com/community/AptGet/Howto

  • Thanks for the help. I tried what you suggested and updated the original post with the output of the search.
    – Seldom
    Jun 11, 2013 at 8:13
  • 26
    Oh, man thank you so much for teaching me to fish instead of just giving me the name of the package!
    – Brian Cain
    Aug 28, 2013 at 0:22
  • 3
    Thanks for the info on apt-file. Regarding the required package for GL/gl.h, it is: mesa-common-dev (at least for Ubuntu 16.04)
    – ElazarR
    Aug 17, 2016 at 13:52
  • 1
    Give a man a fish and you feed him for one day, teach a man to fish and you feed him for a life time. Thank you!
    – Aras
    Jul 31, 2017 at 15:14
  • 1
    +1 for the apt-file. BTW, to get only relevant replies we can use command apt-file search "/usr/include/GL/gl.h"
    – HEKTO
    Nov 27, 2017 at 23:34

For GL/gl.h use:

sudo apt install mesa-common-dev

You may also find these helpful, for, say, GL/glu.h:

sudo apt install libglu1-mesa-dev freeglut3-dev
  • You might also want to include libglfw3-dev libgles2-mesa-dev
    – rustyx
    Aug 31, 2019 at 16:09

Ubuntu 20.04:

GL.h can be installed from the package libgl-dev.

sudo apt install libgl-dev


You can also build glproto (link), libdrm (link), and then mesa (link) from source. While many other packages may contain this header file, it's important to go to the source. This will reduce the memory footprint of your installations and ensure you have the latest and/or greatest version.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .