2
#include<Windows.h>
#include <GL/freeglut.h>
#include <GL/glew.h>
#include<gl/GLU.h>
#include<gl/GL.h>
#include<iostream>
using namespace std;
const int width=1280;
const int height=960;
void OnInit();
void OnShutdown();
void OnResize();
void OnRender();
int main(int argc, char** argv) {
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DEPTH | GLUT_DOUBLE |
GLUT_RGBA);
glutInitContextVersion (3,7 );
glutInitContextFlags (GLUT_CORE_PROFILE | GLUT_DEBUG);
glutInitContextProfile(GLUT_FORWARD_COMPATIBLE);
glutInitWindowSize(width, height);
glutCreateWindow("getting started with understanding");
glewExperimental = GL_TRUE;
GLenum err = glewInit();
if (GLEW_OK != err){
cerr<<"Error: "<<glewGetErrorString(err)<<endl;
} else {
if (GLEW_VERSION_3_3)
{
cout<<"Driver supports OpenGL 3.3\nDetails:"<<endl;
}
}
cout<<"\tUsing glew "<<glewGetString(GLEW_VERSION)<<endl;
cout<<"\tVendor: "<<glGetString (GL_VENDOR)<<endl;
cout<<"\tRenderer: "<<glGetString (GL_RENDERER)<<endl;
cout<<"\tVersion: "<<glGetString (GL_VERSION)<<endl;
cout<<"\tGLSL:"<<glGetString(GL_SHADING_LANGUAGE_VERSION)<<endl;
OnInit();
glutCloseFunc(OnShutdown);
glutDisplayFunc(OnRender);
glutReshapeFunc(OnResize);
glutMainLoop();
return 0;
}
void OnInit() {
glClearColor(1,0,0,0);
cout<<"Initialization successfull"<<endl;
}
void OnShutdown() {
cout<<"Shutdown successfull"<<endl;
}
void OnResize(int nw, int nh) {
}
void OnRender() {
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
glutSwapBuffers();
}
Когда я строй исходного кода в Microsoft Visual Studio, дающий «е ошибка : \ vs2012 \ В.- \ Include \ GL \ glew.h (84): со смертельным исходом ошибка C1189: #error: gl.h, включенная до glew.h ". И у меня также есть glew.h перед gl.h В чем может быть проблема?фатальные gl.h ошибки включены до того glew.h
Я вижу. Но это не должно было быть такой проблемой. Они могли бы решить эту проблему, добавив в защитные оболочки glu.h или gl.h или просто директиву '#pragma once', как это всегда происходит в таких ситуациях, чтобы не добавлять один и тот же заголовочный файл несколько раз. Я не понимаю, почему они этого не сделали. Я злюсь, потому что я не понимаю, почему такие простые вещи должны усложняться. Представьте, что кто-то пытается устранить такую проблему с ограниченным доступом к Интернету или с немногими знающими людьми. Он никогда не сможет продолжить! Так или иначе. Просто говорю. Благодарю. –