Results 1 to 3 of 3

Thread: Beginner problem with GL, GLEW and GLFW on Linux

  1. #1
    Newbie Newbie
    Join Date
    Jul 2014
    Posts
    2

    Unhappy Beginner problem with GL, GLEW and GLFW on Linux

    Hi,

    I've asked all over IRC and I've got nothing. I'm a beginner to GL (so please ignore the rubbish code!) and am still learning.

    I'm wanting to build a 3D simulation for Linux / Windows. I'm developing on Arch Linux. My programming language is Vala (in case you don't know, Vala is a C#-syntax-like language that translates to C before being compiled. If you don't know it, it doesn't matter. If a noob like me can handle it then it's fine). However, after a lot of internet search that didn't help me solve the problem, I have established that the issue is probably not Vala, and is infact GL / GLEW / GLU / GLFW itself.

    So I have this code:

    Code :
    using GLib;
    using GLU;
    using GL;
    using Math;
    using GLFW;
     
    namespace GLib
    {
    	class MainClass : Object
    	{
    		public static int main(string[] args)
    		{
    			//initiate GLFW
    			GLFW.init();
     
    			//Define initial variables
    			int width = 640;
    			int height = 480;
     
    			//Create the window
    			GLFW.Window window = new GLFW.Window(width, height, "Hello, World!", null, null);
     
    			//Make the window OpenGL context the current one
    			window.make_context_current();
     
    			//Main loop
    			while (window.should_close == false)
    			{
    				//[DRAW GOES HERE]
    				GL.glEnable(GL.GL_TEXTURE_2D);
    				GL.glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
    				GL.glViewport(0, 0, width, height);
    				GL.glClear(GL.GL_COLOR_BUFFER_BIT);
     
    				GL.glMatrixMode(GL.GL_PROJECTION);
    				GL.glLoadIdentity();
     
    				GL.glOrtho(0.0f, width, height, 0.0f, -1.0f, 1.0f);
     
    				GL.glMatrixMode(GL.GL_MODELVIEW);
    				GL.glLoadIdentity();
     
    				//Swap the buffers to render
    				window.swap_buffers();
    				//Check for events
    				GLFW.poll_events();
    			}
     
    			//Close the window
    			GLFW.terminate();
     
    			return 0;
    		}
    	}
    }

    And I have compiled it with this command (just the Vala compiler. The --pkg bits are including Vala bindings to these libraries)

    Code :
    valac --vapidir=vapi --pkg glu --pkg glfw3 --pkg gl -o test src/test.vala

    However, when doing so, I get this error:

    Code :
    In file included from /home/barry/Documents/SoftwareProjects/voxel-engine/src/test.vala.c:10:0:
    /usr/include/GL/glew.h:84:2: error: #error gl.h included before glew.h
     #error gl.h included before glew.h
      ^
    /usr/include/GL/glew.h:96:2: error: #error glext.h included before glew.h
     #error glext.h included before glew.h
      ^
    In file included from /home/barry/Documents/SoftwareProjects/voxel-engine/src/test.vala.c:10:0:
    /usr/include/GL/glew.h:14372:28: error: conflicting types for ‘PFNGLFRAGMENTLIGHTMODELFVSGIXPROC’
     typedef void (GLAPIENTRY * PFNGLFRAGMENTLIGHTMODELFVSGIXPROC) (GLenum pname, GLfloat* params);
                                ^
    In file included from /usr/include/GL/gl.h:2055:0,
                     from /usr/include/GLFW/glfw3.h:162,
                     from /home/barry/Documents/SoftwareProjects/voxel-engine/src/test.vala.c:9:
    /usr/include/GL/glext.h:10626:25: note: previous declaration of ‘PFNGLFRAGMENTLIGHTMODELFVSGIXPROC’ was here
     typedef void (APIENTRYP PFNGLFRAGMENTLIGHTMODELFVSGIXPROC) (GLenum pname, const GLfloat *params);
                             ^
    In file included from /home/barry/Documents/SoftwareProjects/voxel-engine/src/test.vala.c:10:0:
    /usr/include/GL/glew.h:14374:28: error: conflicting types for ‘PFNGLFRAGMENTLIGHTMODELIVSGIXPROC’
     typedef void (GLAPIENTRY * PFNGLFRAGMENTLIGHTMODELIVSGIXPROC) (GLenum pname, GLint* params);
                                ^
    In file included from /usr/include/GL/gl.h:2055:0,
                     from /usr/include/GLFW/glfw3.h:162,
                     from /home/barry/Documents/SoftwareProjects/voxel-engine/src/test.vala.c:9:
    /usr/include/GL/glext.h:10628:25: note: previous declaration of ‘PFNGLFRAGMENTLIGHTMODELIVSGIXPROC’ was here
     typedef void (APIENTRYP PFNGLFRAGMENTLIGHTMODELIVSGIXPROC) (GLenum pname, const GLint *params);
                             ^
    In file included from /home/barry/Documents/SoftwareProjects/voxel-engine/src/test.vala.c:10:0:
    /usr/include/GL/glew.h:14376:28: error: conflicting types for ‘PFNGLFRAGMENTLIGHTFVSGIXPROC’
     typedef void (GLAPIENTRY * PFNGLFRAGMENTLIGHTFVSGIXPROC) (GLenum light, GLenum pname, GLfloat* params);
                                ^
    In file included from /usr/include/GL/gl.h:2055:0,
                     from /usr/include/GLFW/glfw3.h:162,
                     from /home/barry/Documents/SoftwareProjects/voxel-engine/src/test.vala.c:9:
    /usr/include/GL/glext.h:10622:25: note: previous declaration of ‘PFNGLFRAGMENTLIGHTFVSGIXPROC’ was here
     typedef void (APIENTRYP PFNGLFRAGMENTLIGHTFVSGIXPROC) (GLenum light, GLenum pname, const GLfloat *params);
                             ^
    In file included from /home/barry/Documents/SoftwareProjects/voxel-engine/src/test.vala.c:10:0:
    /usr/include/GL/glew.h:14378:28: error: conflicting types for ‘PFNGLFRAGMENTLIGHTIVSGIXPROC’
     typedef void (GLAPIENTRY * PFNGLFRAGMENTLIGHTIVSGIXPROC) (GLenum light, GLenum pname, GLint* params);
                                ^
    In file included from /usr/include/GL/gl.h:2055:0,
                     from /usr/include/GLFW/glfw3.h:162,
                     from /home/barry/Documents/SoftwareProjects/voxel-engine/src/test.vala.c:9:
    /usr/include/GL/glext.h:10624:25: note: previous declaration of ‘PFNGLFRAGMENTLIGHTIVSGIXPROC’ was here
     typedef void (APIENTRYP PFNGLFRAGMENTLIGHTIVSGIXPROC) (GLenum light, GLenum pname, const GLint *params);
                             ^
    In file included from /home/barry/Documents/SoftwareProjects/voxel-engine/src/test.vala.c:10:0:
    /usr/include/GL/glew.h:14385:28: error: conflicting types for ‘PFNGLGETFRAGMENTMATERIALFVSGIXPROC’
     typedef void (GLAPIENTRY * PFNGLGETFRAGMENTMATERIALFVSGIXPROC) (GLenum face, GLenum pname, const GLfloat* data);
                                ^
    In file included from /usr/include/GL/gl.h:2055:0,
                     from /usr/include/GLFW/glfw3.h:162,
                     from /home/barry/Documents/SoftwareProjects/voxel-engine/src/test.vala.c:9:
    /usr/include/GL/glext.h:10635:25: note: previous declaration of ‘PFNGLGETFRAGMENTMATERIALFVSGIXPROC’ was here
     typedef void (APIENTRYP PFNGLGETFRAGMENTMATERIALFVSGIXPROC) (GLenum face, GLenum pname, GLfloat *params);
                             ^
    In file included from /home/barry/Documents/SoftwareProjects/voxel-engine/src/test.vala.c:10:0:
    /usr/include/GL/glew.h:14386:28: error: conflicting types for ‘PFNGLGETFRAGMENTMATERIALIVSGIXPROC’
     typedef void (GLAPIENTRY * PFNGLGETFRAGMENTMATERIALIVSGIXPROC) (GLenum face, GLenum pname, const GLint* data);
                                ^
    In file included from /usr/include/GL/gl.h:2055:0,
                     from /usr/include/GLFW/glfw3.h:162,
                     from /home/barry/Documents/SoftwareProjects/voxel-engine/src/test.vala.c:9:
    /usr/include/GL/glext.h:10636:25: note: previous declaration of ‘PFNGLGETFRAGMENTMATERIALIVSGIXPROC’ was here
     typedef void (APIENTRYP PFNGLGETFRAGMENTMATERIALIVSGIXPROC) (GLenum face, GLenum pname, GLint *params);
                             ^
    In file included from /home/barry/Documents/SoftwareProjects/voxel-engine/src/test.vala.c:10:0:
    /usr/include/GL/glew.h:15049:17: error: unknown type name ‘PFNGLCLIENTACTIVETEXTUREPROC’
     GLEW_FUN_EXPORT PFNGLCLIENTACTIVETEXTUREPROC __glewClientActiveTexture;
                     ^
    /usr/include/GL/glew.h:15057:17: error: unknown type name ‘PFNGLLOADTRANSPOSEMATRIXDPROC’
     GLEW_FUN_EXPORT PFNGLLOADTRANSPOSEMATRIXDPROC __glewLoadTransposeMatrixd;
                     ^
    /usr/include/GL/glew.h:15058:17: error: unknown type name ‘PFNGLLOADTRANSPOSEMATRIXFPROC’
     GLEW_FUN_EXPORT PFNGLLOADTRANSPOSEMATRIXFPROC __glewLoadTransposeMatrixf;
                     ^
    /usr/include/GL/glew.h:15059:17: error: unknown type name ‘PFNGLMULTTRANSPOSEMATRIXDPROC’
     GLEW_FUN_EXPORT PFNGLMULTTRANSPOSEMATRIXDPROC __glewMultTransposeMatrixd;
                     ^
    /usr/include/GL/glew.h:15060:17: error: unknown type name ‘PFNGLMULTTRANSPOSEMATRIXFPROC’
     GLEW_FUN_EXPORT PFNGLMULTTRANSPOSEMATRIXFPROC __glewMultTransposeMatrixf;
                     ^
    /usr/include/GL/glew.h:15061:17: error: unknown type name ‘PFNGLMULTITEXCOORD1DPROC’
     GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1DPROC __glewMultiTexCoord1d;
                     ^
    /usr/include/GL/glew.h:15062:17: error: unknown type name ‘PFNGLMULTITEXCOORD1DVPROC’
     GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1DVPROC __glewMultiTexCoord1dv;
                     ^
    /usr/include/GL/glew.h:15063:17: error: unknown type name ‘PFNGLMULTITEXCOORD1FPROC’
     GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1FPROC __glewMultiTexCoord1f;
                     ^
    /usr/include/GL/glew.h:15064:17: error: unknown type name ‘PFNGLMULTITEXCOORD1FVPROC’
     GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1FVPROC __glewMultiTexCoord1fv;
                     ^
    /usr/include/GL/glew.h:15065:17: error: unknown type name ‘PFNGLMULTITEXCOORD1IPROC’
     GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1IPROC __glewMultiTexCoord1i;
                     ^
    /usr/include/GL/glew.h:15066:17: error: unknown type name ‘PFNGLMULTITEXCOORD1IVPROC’
     GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1IVPROC __glewMultiTexCoord1iv;
                     ^
    /usr/include/GL/glew.h:15067:17: error: unknown type name ‘PFNGLMULTITEXCOORD1SPROC’
     GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1SPROC __glewMultiTexCoord1s;
                     ^
    /usr/include/GL/glew.h:15068:17: error: unknown type name ‘PFNGLMULTITEXCOORD1SVPROC’
     GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1SVPROC __glewMultiTexCoord1sv;
                     ^
    /usr/include/GL/glew.h:15069:17: error: unknown type name ‘PFNGLMULTITEXCOORD2DPROC’
     GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2DPROC __glewMultiTexCoord2d;
                     ^
    /usr/include/GL/glew.h:15070:17: error: unknown type name ‘PFNGLMULTITEXCOORD2DVPROC’
     GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2DVPROC __glewMultiTexCoord2dv;
                     ^
    /usr/include/GL/glew.h:15071:17: error: unknown type name ‘PFNGLMULTITEXCOORD2FPROC’
     GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2FPROC __glewMultiTexCoord2f;
                     ^
    /usr/include/GL/glew.h:15072:17: error: unknown type name ‘PFNGLMULTITEXCOORD2FVPROC’
     GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2FVPROC __glewMultiTexCoord2fv;
                     ^
    /usr/include/GL/glew.h:15073:17: error: unknown type name ‘PFNGLMULTITEXCOORD2IPROC’
     GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2IPROC __glewMultiTexCoord2i;
                     ^
    /usr/include/GL/glew.h:15074:17: error: unknown type name ‘PFNGLMULTITEXCOORD2IVPROC’
     GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2IVPROC __glewMultiTexCoord2iv;
                     ^
    /usr/include/GL/glew.h:15075:17: error: unknown type name ‘PFNGLMULTITEXCOORD2SPROC’
     GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2SPROC __glewMultiTexCoord2s;
                     ^
    /usr/include/GL/glew.h:15076:17: error: unknown type name ‘PFNGLMULTITEXCOORD2SVPROC’
     GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2SVPROC __glewMultiTexCoord2sv;
                     ^
    /usr/include/GL/glew.h:15077:17: error: unknown type name ‘PFNGLMULTITEXCOORD3DPROC’
     GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3DPROC __glewMultiTexCoord3d;
                     ^
    /usr/include/GL/glew.h:15078:17: error: unknown type name ‘PFNGLMULTITEXCOORD3DVPROC’
     GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3DVPROC __glewMultiTexCoord3dv;
                     ^
    /usr/include/GL/glew.h:15079:17: error: unknown type name ‘PFNGLMULTITEXCOORD3FPROC’
     GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3FPROC __glewMultiTexCoord3f;
                     ^
    /usr/include/GL/glew.h:15080:17: error: unknown type name ‘PFNGLMULTITEXCOORD3FVPROC’
     GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3FVPROC __glewMultiTexCoord3fv;
                     ^
    /usr/include/GL/glew.h:15081:17: error: unknown type name ‘PFNGLMULTITEXCOORD3IPROC’
     GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3IPROC __glewMultiTexCoord3i;
                     ^
    /usr/include/GL/glew.h:15082:17: error: unknown type name ‘PFNGLMULTITEXCOORD3IVPROC’
     GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3IVPROC __glewMultiTexCoord3iv;
                     ^
    /usr/include/GL/glew.h:15083:17: error: unknown type name ‘PFNGLMULTITEXCOORD3SPROC’
     GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3SPROC __glewMultiTexCoord3s;
                     ^
    /usr/include/GL/glew.h:15084:17: error: unknown type name ‘PFNGLMULTITEXCOORD3SVPROC’
     GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3SVPROC __glewMultiTexCoord3sv;
                     ^
    /usr/include/GL/glew.h:15085:17: error: unknown type name ‘PFNGLMULTITEXCOORD4DPROC’
     GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4DPROC __glewMultiTexCoord4d;
                     ^
    /usr/include/GL/glew.h:15086:17: error: unknown type name ‘PFNGLMULTITEXCOORD4DVPROC’
     GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4DVPROC __glewMultiTexCoord4dv;
                     ^
    /usr/include/GL/glew.h:15087:17: error: unknown type name ‘PFNGLMULTITEXCOORD4FPROC’
     GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4FPROC __glewMultiTexCoord4f;
                     ^
    /usr/include/GL/glew.h:15088:17: error: unknown type name ‘PFNGLMULTITEXCOORD4FVPROC’
     GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4FVPROC __glewMultiTexCoord4fv;
                     ^
    /usr/include/GL/glew.h:15089:17: error: unknown type name ‘PFNGLMULTITEXCOORD4IPROC’
     GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4IPROC __glewMultiTexCoord4i;
                     ^
    /usr/include/GL/glew.h:15090:17: error: unknown type name ‘PFNGLMULTITEXCOORD4IVPROC’
     GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4IVPROC __glewMultiTexCoord4iv;
                     ^
    /usr/include/GL/glew.h:15091:17: error: unknown type name ‘PFNGLMULTITEXCOORD4SPROC’
     GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4SPROC __glewMultiTexCoord4s;
                     ^
    /usr/include/GL/glew.h:15092:17: error: unknown type name ‘PFNGLMULTITEXCOORD4SVPROC’
     GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4SVPROC __glewMultiTexCoord4sv;
                     ^
    /usr/include/GL/glew.h:15572:17: error: unknown type name ‘PFNGLCOLORSUBTABLEPROC’
     GLEW_FUN_EXPORT PFNGLCOLORSUBTABLEPROC __glewColorSubTable;
                     ^
    /usr/include/GL/glew.h:15573:17: error: unknown type name ‘PFNGLCOLORTABLEPROC’
     GLEW_FUN_EXPORT PFNGLCOLORTABLEPROC __glewColorTable;
                     ^
    /usr/include/GL/glew.h:15574:17: error: unknown type name ‘PFNGLCOLORTABLEPARAMETERFVPROC’
     GLEW_FUN_EXPORT PFNGLCOLORTABLEPARAMETERFVPROC __glewColorTableParameterfv;
                     ^
    /usr/include/GL/glew.h:15575:17: error: unknown type name ‘PFNGLCOLORTABLEPARAMETERIVPROC’
     GLEW_FUN_EXPORT PFNGLCOLORTABLEPARAMETERIVPROC __glewColorTableParameteriv;
                     ^
    /usr/include/GL/glew.h:15576:17: error: unknown type name ‘PFNGLCONVOLUTIONFILTER1DPROC’
     GLEW_FUN_EXPORT PFNGLCONVOLUTIONFILTER1DPROC __glewConvolutionFilter1D;
                     ^
    /usr/include/GL/glew.h:15577:17: error: unknown type name ‘PFNGLCONVOLUTIONFILTER2DPROC’
     GLEW_FUN_EXPORT PFNGLCONVOLUTIONFILTER2DPROC __glewConvolutionFilter2D;
                     ^
    /usr/include/GL/glew.h:15578:17: error: unknown type name ‘PFNGLCONVOLUTIONPARAMETERFPROC’
     GLEW_FUN_EXPORT PFNGLCONVOLUTIONPARAMETERFPROC __glewConvolutionParameterf;
                     ^
    /usr/include/GL/glew.h:15579:17: error: unknown type name ‘PFNGLCONVOLUTIONPARAMETERFVPROC’
     GLEW_FUN_EXPORT PFNGLCONVOLUTIONPARAMETERFVPROC __glewConvolutionParameterfv;
                     ^
    /usr/include/GL/glew.h:15580:17: error: unknown type name ‘PFNGLCONVOLUTIONPARAMETERIPROC’
     GLEW_FUN_EXPORT PFNGLCONVOLUTIONPARAMETERIPROC __glewConvolutionParameteri;
                     ^
    /usr/include/GL/glew.h:15581:17: error: unknown type name ‘PFNGLCONVOLUTIONPARAMETERIVPROC’
     GLEW_FUN_EXPORT PFNGLCONVOLUTIONPARAMETERIVPROC __glewConvolutionParameteriv;
                     ^
    /usr/include/GL/glew.h:15582:17: error: unknown type name ‘PFNGLCOPYCOLORSUBTABLEPROC’
     GLEW_FUN_EXPORT PFNGLCOPYCOLORSUBTABLEPROC __glewCopyColorSubTable;
                     ^
    /usr/include/GL/glew.h:15583:17: error: unknown type name ‘PFNGLCOPYCOLORTABLEPROC’
     GLEW_FUN_EXPORT PFNGLCOPYCOLORTABLEPROC __glewCopyColorTable;
                     ^
    /usr/include/GL/glew.h:15584:17: error: unknown type name ‘PFNGLCOPYCONVOLUTIONFILTER1DPROC’
     GLEW_FUN_EXPORT PFNGLCOPYCONVOLUTIONFILTER1DPROC __glewCopyConvolutionFilter1D;
                     ^
    /usr/include/GL/glew.h:15585:17: error: unknown type name ‘PFNGLCOPYCONVOLUTIONFILTER2DPROC’
     GLEW_FUN_EXPORT PFNGLCOPYCONVOLUTIONFILTER2DPROC __glewCopyConvolutionFilter2D;
                     ^
    /usr/include/GL/glew.h:15586:17: error: unknown type name ‘PFNGLGETCOLORTABLEPROC’
     GLEW_FUN_EXPORT PFNGLGETCOLORTABLEPROC __glewGetColorTable;
                     ^
    /usr/include/GL/glew.h:15587:17: error: unknown type name ‘PFNGLGETCOLORTABLEPARAMETERFVPROC’
     GLEW_FUN_EXPORT PFNGLGETCOLORTABLEPARAMETERFVPROC __glewGetColorTableParameterfv;
                     ^
    /usr/include/GL/glew.h:15588:17: error: unknown type name ‘PFNGLGETCOLORTABLEPARAMETERIVPROC’
     GLEW_FUN_EXPORT PFNGLGETCOLORTABLEPARAMETERIVPROC __glewGetColorTableParameteriv;
                     ^
    /usr/include/GL/glew.h:15589:17: error: unknown type name ‘PFNGLGETCONVOLUTIONFILTERPROC’
     GLEW_FUN_EXPORT PFNGLGETCONVOLUTIONFILTERPROC __glewGetConvolutionFilter;
                     ^
    /usr/include/GL/glew.h:15590:17: error: unknown type name ‘PFNGLGETCONVOLUTIONPARAMETERFVPROC’
     GLEW_FUN_EXPORT PFNGLGETCONVOLUTIONPARAMETERFVPROC __glewGetConvolutionParameterfv;
                     ^
    /usr/include/GL/glew.h:15591:17: error: unknown type name ‘PFNGLGETCONVOLUTIONPARAMETERIVPROC’
     GLEW_FUN_EXPORT PFNGLGETCONVOLUTIONPARAMETERIVPROC __glewGetConvolutionParameteriv;
                     ^
    /usr/include/GL/glew.h:15592:17: error: unknown type name ‘PFNGLGETHISTOGRAMPROC’
     GLEW_FUN_EXPORT PFNGLGETHISTOGRAMPROC __glewGetHistogram;
                     ^
    /usr/include/GL/glew.h:15593:17: error: unknown type name ‘PFNGLGETHISTOGRAMPARAMETERFVPROC’
     GLEW_FUN_EXPORT PFNGLGETHISTOGRAMPARAMETERFVPROC __glewGetHistogramParameterfv;
                     ^
    /usr/include/GL/glew.h:15594:17: error: unknown type name ‘PFNGLGETHISTOGRAMPARAMETERIVPROC’
     GLEW_FUN_EXPORT PFNGLGETHISTOGRAMPARAMETERIVPROC __glewGetHistogramParameteriv;
                     ^
    /usr/include/GL/glew.h:15595:17: error: unknown type name ‘PFNGLGETMINMAXPROC’
     GLEW_FUN_EXPORT PFNGLGETMINMAXPROC __glewGetMinmax;
                     ^
    /usr/include/GL/glew.h:15596:17: error: unknown type name ‘PFNGLGETMINMAXPARAMETERFVPROC’
     GLEW_FUN_EXPORT PFNGLGETMINMAXPARAMETERFVPROC __glewGetMinmaxParameterfv;
                     ^
    /usr/include/GL/glew.h:15597:17: error: unknown type name ‘PFNGLGETMINMAXPARAMETERIVPROC’
     GLEW_FUN_EXPORT PFNGLGETMINMAXPARAMETERIVPROC __glewGetMinmaxParameteriv;
                     ^
    /usr/include/GL/glew.h:15598:17: error: unknown type name ‘PFNGLGETSEPARABLEFILTERPROC’
     GLEW_FUN_EXPORT PFNGLGETSEPARABLEFILTERPROC __glewGetSeparableFilter;
                     ^
    /usr/include/GL/glew.h:15599:17: error: unknown type name ‘PFNGLHISTOGRAMPROC’
     GLEW_FUN_EXPORT PFNGLHISTOGRAMPROC __glewHistogram;
                     ^
    /usr/include/GL/glew.h:15600:17: error: unknown type name ‘PFNGLMINMAXPROC’
     GLEW_FUN_EXPORT PFNGLMINMAXPROC __glewMinmax;
                     ^
    /usr/include/GL/glew.h:15601:17: error: unknown type name ‘PFNGLRESETHISTOGRAMPROC’
     GLEW_FUN_EXPORT PFNGLRESETHISTOGRAMPROC __glewResetHistogram;
                     ^
    /usr/include/GL/glew.h:15602:17: error: unknown type name ‘PFNGLRESETMINMAXPROC’
     GLEW_FUN_EXPORT PFNGLRESETMINMAXPROC __glewResetMinmax;
                     ^
    /usr/include/GL/glew.h:15603:17: error: unknown type name ‘PFNGLSEPARABLEFILTER2DPROC’
     GLEW_FUN_EXPORT PFNGLSEPARABLEFILTER2DPROC __glewSeparableFilter2D;
                     ^
    error: cc exited with status 256
    Compilation failed: 1 error(s), 0 warning(s)

    Does anyone know what might be the issue? I'm fairly sure the bindings I have to Vala for these libraries are good, so it should all be working.

    Thanks very much for reading,

    Barry Smith (Zesterer)

  2. #2
    Senior Member OpenGL Guru
    Join Date
    Oct 2004
    Posts
    4,651
    Quote Originally Posted by zesterer View Post
    So I have this code:

    Code :
    using GLib;
    using GLU;
    using GL;
    using Math;
    using GLFW;
    ...

    And I have compiled it with this command ... However, when doing so, I get this error:

    Code :
    In file included from /home/barry/Documents/SoftwareProjects/voxel-engine/src/test.vala.c:10:0:
    /usr/include/GL/glew.h:84:2: error: #error gl.h included before glew.h
     #error gl.h included before glew.h
      ^
    /usr/include/GL/glew.h:96:2: error: #error glext.h included before glew.h
     #error glext.h included before glew.h
      ^
    Well, if this Vala language is going to make you deal with C/C++ compiler errors, it better expose a way to look a the generated C/C++ before compilation.

    If you look at it, you'll no doubt find exactly what the error says to be the case.

    Best guess: the C/C++ #includes are probably generated in the same order as the using directives in your Vala code. Try reording your using directives as follows:

    Code :
    using GLFW;
    using GLib;
    using GLU;
    using GL;
    using Math;

  3. #3
    Newbie Newbie
    Join Date
    Jul 2014
    Posts
    2
    Quote Originally Posted by Dark Photon View Post
    Well, if this Vala language is going to make you deal with C/C++ compiler errors, it better expose a way to look a the generated C/C++ before compilation.

    If you look at it, you'll no doubt find exactly what the error says to be the case.

    Best guess: the C/C++ #includes are probably generated in the same order as the using directives in your Vala code. Try reording your using directives as follows:

    Code :
    using GLFW;
    using GLib;
    using GLU;
    using GL;
    using Math;
    Ok, so I added the "-C" tag to the compiler that makes it output the generated C beforehand, and I got this C file...

    Code :
    /* test.c generated by valac 0.24.0, the Vala compiler
     * generated from test.vala, do not modify */
     
     
    #include <glib.h>
    #include <glib-object.h>
    #include <stdlib.h>
    #include <string.h>
    #include <GLFW/glfw3.h>
    #include <GL/glew.h>
     
     
    #define G_TYPE_MAINCLASS (g_mainclass_get_type ())
    #define G_MAINCLASS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), G_TYPE_MAINCLASS, GMainClass))
    #define G_MAINCLASS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), G_TYPE_MAINCLASS, GMainClassClass))
    #define G_IS_MAINCLASS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), G_TYPE_MAINCLASS))
    #define G_IS_MAINCLASS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), G_TYPE_MAINCLASS))
    #define G_MAINCLASS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), G_TYPE_MAINCLASS, GMainClassClass))
     
    typedef struct _GMainClass GMainClass;
    typedef struct _GMainClassClass GMainClassClass;
    typedef struct _GMainClassPrivate GMainClassPrivate;
    #define _glfwDestroyWindow0(var) ((var == NULL) ? NULL : (var = (glfwDestroyWindow (var), NULL)))
     
    struct _GMainClass {
    	GObject parent_instance;
    	GMainClassPrivate * priv;
    };
     
    struct _GMainClassClass {
    	GObjectClass parent_class;
    };
     
     
    static gpointer g_mainclass_parent_class = NULL;
     
    GType g_mainclass_get_type (void) G_GNUC_CONST;
    enum  {
    	G_MAINCLASS_DUMMY_PROPERTY
    };
    gint g_mainclass_main (gchar** args, int args_length1);
    GMainClass* g_mainclass_new (void);
    GMainClass* g_mainclass_construct (GType object_type);
     
     
    gint g_mainclass_main (gchar** args, int args_length1) {
    	gint result = 0;
    	gint width = 0;
    	gint height = 0;
    	GLFWwindow* window = NULL;
    	gint _tmp0_ = 0;
    	gint _tmp1_ = 0;
    	GLFWwindow* _tmp2_ = NULL;
    	GLFWwindow* _tmp3_ = NULL;
    	glfwInit ();
    	width = 640;
    	height = 480;
    	_tmp0_ = width;
    	_tmp1_ = height;
    	_tmp2_ = glfwCreateWindow (_tmp0_, _tmp1_, "Hello, World!", NULL, NULL);
    	window = _tmp2_;
    	_tmp3_ = window;
    	glfwMakeContextCurrent (_tmp3_);
    	while (TRUE) {
    		GLFWwindow* _tmp4_ = NULL;
    		gboolean _tmp5_ = FALSE;
    		gboolean _tmp6_ = FALSE;
    		gint _tmp7_ = 0;
    		gint _tmp8_ = 0;
    		gint _tmp9_ = 0;
    		gint _tmp10_ = 0;
    		GLFWwindow* _tmp11_ = NULL;
    		_tmp4_ = window;
    		_tmp5_ = glfwWindowShouldClose (_tmp4_);
    		_tmp6_ = _tmp5_;
    		if (!(_tmp6_ == FALSE)) {
    			break;
    		}
    		glEnable ((GLenum) GL_TEXTURE_2D);
    		glClearColor ((GLfloat) 0.0f, (GLfloat) 0.0f, (GLfloat) 0.0f, (GLfloat) 0.0f);
    		_tmp7_ = width;
    		_tmp8_ = height;
    		glViewport ((GLint) 0, (GLint) 0, (GLsizei) _tmp7_, (GLsizei) _tmp8_);
    		glClear ((GLbitfield) GL_COLOR_BUFFER_BIT);
    		glMatrixMode ((GLenum) GL_PROJECTION);
    		glLoadIdentity ();
    		_tmp9_ = width;
    		_tmp10_ = height;
    		glOrtho ((GLdouble) 0.0f, (GLdouble) _tmp9_, (GLdouble) _tmp10_, (GLdouble) 0.0f, (GLdouble) (-1.0f), (GLdouble) 1.0f);
    		glMatrixMode ((GLenum) GL_MODELVIEW);
    		glLoadIdentity ();
    		_tmp11_ = window;
    		glfwSwapBuffers (_tmp11_);
    		glfwPollEvents ();
    	}
    	glfwTerminate ();
    	result = 0;
    	_glfwDestroyWindow0 (window);
    	return result;
    }
     
     
    int main (int argc, char ** argv) {
    #if !GLIB_CHECK_VERSION (2,35,0)
    	g_type_init ();
    #endif
    	return g_mainclass_main (argv, argc);
    }
     
     
    GMainClass* g_mainclass_construct (GType object_type) {
    	GMainClass * self = NULL;
    	self = (GMainClass*) g_object_new (object_type, NULL);
    	return self;
    }
     
     
    GMainClass* g_mainclass_new (void) {
    	return g_mainclass_construct (G_TYPE_MAINCLASS);
    }
     
     
    static void g_mainclass_class_init (GMainClassClass * klass) {
    	g_mainclass_parent_class = g_type_class_peek_parent (klass);
    }
     
     
    static void g_mainclass_instance_init (GMainClass * self) {
    }
     
     
    GType g_mainclass_get_type (void) {
    	static volatile gsize g_mainclass_type_id__volatile = 0;
    	if (g_once_init_enter (&g_mainclass_type_id__volatile)) {
    		static const GTypeInfo g_define_type_info = { sizeof (GMainClassClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) g_mainclass_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GMainClass), 0, (GInstanceInitFunc) g_mainclass_instance_init, NULL };
    		GType g_mainclass_type_id;
    		g_mainclass_type_id = g_type_register_static (G_TYPE_OBJECT, "GMainClass", &g_define_type_info, 0);
    		g_once_init_leave (&g_mainclass_type_id__volatile, g_mainclass_type_id);
    	}
    	return g_mainclass_type_id__volatile;
    }

    I see that it's including things in the wrong order... But I have no idea how to go about fixing this

    I can't modify this file, it won't generate correctly. But I see the problem here is probably Vala, so I'll try fixing it another way.

    Thanks for your help!

    Barry Smith (Zesterer)

Similar Threads

  1. Glew and Glfw
    By Horsetaur in forum OpenGL: Basic Coding
    Replies: 2
    Last Post: 12-11-2018, 01:31 PM
  2. Replies: 3
    Last Post: 06-26-2018, 06:50 PM
  3. Setting up OpenGL (GLEW & GLFW) on linux
    By Dijkstra in forum OpenGL: Basic Coding
    Replies: 0
    Last Post: 02-12-2016, 05:55 AM
  4. Suspected fragment shader problem, No color, OpenGL 4, GLFW 3, GLEW
    By WaywardSquanderer in forum OpenGL: Basic Coding
    Replies: 1
    Last Post: 07-21-2013, 10:56 PM
  5. Problem with glew, OpenGL 3.2 and linux
    By Junky in forum OpenGL: Basic Coding
    Replies: 3
    Last Post: 09-19-2010, 12:29 PM

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
Proudly hosted by Digital Ocean