Search code examples
c++macosopenglglutundeclared-identifier

glutInitContextVersion() is missing from glut library


I am practicing some opengl code, how ever when i want to force the opengl context to use a certain version of opengl through glutInitContextVersion() it fails compilation process and gives this message:-

use of undeclared identifier 'glutInitContextVersion'

i want to fix this issue so i kept my code as simple as possible

code

#include "File.h"
#include <GLUT/GLUT.h>
#include <OpenGL/OpenGL.h>

using namespace std;

int  main ()
{

    glutInitContextVersion(3,2);

    return 1;
}

However i was able to use other glut functions without any error or warning messages

I am running Xcode 4.4.1 on Macbook air with OS X 10.9.1


Solution

  • GLUT development ended many years ago and that is actually a non-standard extension (added in FreeGLUT). OS X ships with its own implementation of standard GLUT (3.x). Though since you mention OS X 10.9 in your question, it is worth pointing out that the compiler is going to generate all sorts of annoying deprecation warnings if you try to use it.

    If you want to get a 3.2 core context on OS X using the Frameworks that ship with it, you will have to use CGL (C) or NSOpenGL (Objective C).

    If you insist on using GLUT, you will need to find a port of FreeGLUT for OS X instead of the Framework that ships with the platform. This of course means tracking down additional dependencies, but I don't think that will be that big a deal. Just remember to stop including the GLUT headers that ship with Xcode.