visual c++ - tutorial - Errores de compilación de VC++ cuando se incluye gl.h
opengl c++ tutorial español (4)
si usa visual c ++, asegúrese de que ya tiene la biblioteca opengl. use #include <windows.h>
antes del #include <GL/gl.h>
y si usa #include <glut.h>
en su programa, asegúrese de que no escriba así #include <GL/glut.h>
, si escribe así puede ser un error "GL / glut.h no existe tal archivo o directorio"
Al compilar un archivo que usa OpenGL con Visual C ++, cuando intento incluir el archivo de cabecera gl.h, obtengo unos 150 errores de compilación poco útiles:
error C2144: error de sintaxis: ''void'' debe ir precedido por '';''
error C4430: especificador de tipo faltante - int asumido. Nota: C ++ no es compatible con default-int
error C2146: error de sintaxis: falta '';'' antes del identificador ''glAccum''
etc.
La primera posibilidad de considerar es que los mensajes del compilador son realmente correctos . 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 antes de 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.
¿Puedes reproducir el problema en un proyecto simple? ¿Basta con 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?
Recuerda que eres el que está aquí con acceso a tu 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.
Parece que estás incluyendo un encabezado C dentro de un proyecto de C ++. Intente adjuntar su declaración de inclusión dentro de:
extern "C" {
#include "gl.h"
}
Simplemente #include <windows.h>
antes de <gl/gl.h>
o <gl/glu.h>
. Es necesario para algunos tipos, como WINGDIAPI
y APIENTRY
.