View Full Version : Borland glut.h error: One set of overloaded "c" functions

10-21-2002, 07:55 AM
Error E2337 d:\Borland\Bcc55\include\gl/glut.h 146: Only one of a set of overloaded functions can be "C"

I can not fix this error!! Anyone know the fix?? It has to do with the exit() function and the link types (cdecl, stdcall,etc.).

10-21-2002, 08:41 AM
I dont' remember if it was the same error message, but just look at the link below and search "Eric change" to see what I modified to get it to compile. It will probably fix yours too.

The problem was that Borland's STL exit function is not a C function but a C++ function. And it also has a few overloads. So that freaks out the extern "C". I believe that my comments in the glut.h are not very correct.

[This message has been edited by Gorg (edited 10-21-2002).]

10-21-2002, 09:22 AM

I absolutely love you.. Your fix worked like a charm!!! Thanks, I really appreciate the help

by the way for anyone with same problem this is the fix:

1) Add the following lines :

#include <stdlib.h> //bring exit into global scope
#endif //ERIC CHANGE

Just above the lines:
#endif /* _WIN32 */

#include <GL/gl.h>
#include <GL/glu.h>
Around line 133 in glut.h(atleast in the one I have)
2) Then change line 146 in glut.h or the line that declares the extern _CRTIMP void __cdecl exit(int);
with the following:

//in borland this function is not extern C.
//stdlib.h is included somewhere above
extern _CRTIMP void __cdecl exit(int);