For Visual C++ you should do the following: Opengl32.dll and glu32.dll should already be in the system folder. Opengl32.lib and glu32.lib should already be in the lib folder for VC++. gl.h and glu.h should be in a folder called GL under the include folder for VC++ All the above files come with Windows and VC++. You will have to get glut32.lib, glut32.dll and glut.h off the web. Check www.opengl.org for pointers. Put them in the same places as the other lib and include files. You want to create a console application. Go to project settings. Under the link parameters, add Opengl32.lib, glu32.lib and glut32.lib Now you can build the .exe file If you are running a program with programmable shaders, the version of OpenGL provided by Microsoft is too old. But there is a solution through the OpenGL Extensions Wrangler (glew) library which you download from sourceforge and other sites. Just as with GLUT, put glew32.dll, glew32.lib, and glew.h in the usual places. In your code you should add the line #include before the include for GLUT and glewInit(); after glutCreateWindow Make sure the linker searches glew32.lib as you did for glut32.lib Because functions such as fread() convert the Windows CR LF at the of each line of a text file to \n, while fseek() does not, you will be safer if you do the following in readSahderSource (a) use fopen(shaderFile, "rb"); rather tha fopen(shaderFile, "r"); (b) add the the null terminator explicitly buf[size] = '\0'; These changes should not affect the versions for other platforms.