【发布时间】:2013-04-04 04:55:20
【问题描述】:
我有这个简单的三角形绘制代码,它会产生错误“重新声明 C++ 内置类型 short”。但是当我将#include<iostream.h> 放在#include<glut.h> 之前时,它会编译并运行。
谁能解释一下这背后的逻辑?
#include<glut.h>
void renderScene(void) {
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glBegin(GL_TRIANGLES);
glVertex3f(-0.5,-0.5,0.0);
glVertex3f(0.5,0.0,0.0);
glVertex3f(0.0,0.5,0.0);
glEnd();
glutSwapBuffers();
}
int main(int argc, char **argv) {
// init GLUT and create Window
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DEPTH | GLUT_DOUBLE | GLUT_RGBA);
glutInitWindowPosition(100,100);
glutInitWindowSize(320,320);
glutCreateWindow("My first program");
// register callbacks
glutDisplayFunc(renderScene);
// enter GLUT event processing cycle
glutMainLoop();
return 1;
}
【问题讨论】:
-
主要问题是“为什么我把 iostream.h 放在首位时它会起作用”?
-
@wallyk 这会是更好的标题!但我需要它起作用的原因?
-
我建议你看看这两个版本的预处理器输出,也许你能从中找出原因。
-
请发布完整的编译器调用和输出。
-
我不确定你的问题,但 iostream 不是 .h 文件,你应该使用 '#include
' 结尾不带 '.h'。
标签: c++ opengl compiler-construction glut dev-c++