2009-01-10 7 views
17

Compilación de un archivo que utiliza OpenGL con Visual C++, cuando trato de incluir el archivo de cabecera gl.h Tengo alrededor de 150 errores de compilación inútiles:VC++ errores de compilación cuando se incluye gl.h

error C2144: error de sintaxis: 'void' debe ir precedido por ';'

error C4430: especificador de tipo faltante - int assume. Nota: C++ no es compatible con el valor predeterminado-int

error C2146: error de sintaxis: falta ';' antes de identificador 'glAccum'

etc.

Respuesta

43

Solo #include <windows.h> antes <gl/gl.h> o <gl/glu.h>. Es necesario para algunos tipos, como WINGDIAPI y APIENTRY.

+2

cómo hacer esto bien sin incluir Windows.h? – mr5

1

parece que estás incluyendo una cabecera de C dentro de un proyecto de C++. Pruebe que encierra su sentencia de inclusión en el interior:

extern "C" { 
#include "gl.h" 
} 
-1

La primera posibilidad a considerar es que los mensajes del compilador son en realidad derecha. Seguramente había números de línea incluidos en esos mensajes de error, así que ¿has mirado las líneas ofensivas, y algunas de las líneas que las preceden, para tratar de identificar cuál podría ser realmente la causa?

¿Hubo algún otro mensaje anterior a los que ha citado? (¿Un encabezado que falta, por ejemplo?) Siempre comience a direccionar los mensajes del compilador desde el primero; los posteriores a veces son simplemente efectos secundarios causados ​​por eso.

¿Puede reproducir el problema en un proyecto simple? ¿Es suficiente simplemente escribir #include <gl.h> en un archivo vacío y tratar de compilarlo? ¿O hay más acerca de este código fuente que causa el error?

Recuerde que es el de aquí con acceso a su código; las preguntas que estoy haciendo arriba son del tipo de cosas que debes tener en cuenta, ya que no siempre puedes tener a alguien más para depurar tu código.

2

si usa visual C++, asegúrese de que ya tiene la biblioteca opengl. uso #include <windows.h> antes de la #include <GL/gl.h> y si se utiliza #include <glut.h> en su programa de asegurarse de que no son del tipo como éste #include <GL/glut.h>, si escribe como que puede ser error "GL/glut.h No existe el fichero o directorio"

Cuestiones relacionadas