【发布时间】:2012-11-11 11:18:50
【问题描述】:
我正在使用以下代码(我在网上找到)来创建一个基本的 OpenGL 程序:
#include <GL/gl.h>
#include <GL/glu.h>
#include <GL/glut.h>
#define window_width 640
#define window_height 480
// Main loop
void main_loop_function()
{
// Z angle
static float angle;
// Clear color (screen)
// And depth (used internally to block obstructed objects)
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
.
.
.
}
.
.
.
我使用的是 Ubuntu 12.04 和 Eclipse 3.7.2。该程序编译并实际运行,但奇怪的是我的代码中出现了一个错误。
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
行有错误:
此行有多个标记 - 无效的参数'候选人是:void glClear(unsigned int)' - 符号“GL_COLOR_BUFFER_BIT”无法解析 - 符号“GL_DEPTH_BUFFER_BIT”无法解析
到目前为止,我所做的一切都没有从 IDE 中删除此错误。欢迎任何帮助。
注意,如果我将行更改为
glClear(GL_COLOR_BUFFER_BIT);
或
glClear(GL_DEPTH_BUFFER_BIT);
然后错误消失...
【问题讨论】:
-
你能在你的 gl.h 中查看是否定义了 GL_COLOR_BUFFER_BIT 和 GL_DEPTH_BUFFER_BIT 吗?你应该找到类似的东西: /* ClearBufferMask */ #define GL_DEPTH_BUFFER_BIT 0x00000100 #define GL_STENCIL_BUFFER_BIT 0x00000400 #define GL_COLOR_BUFFER_BIT 0x00004000
-
@Jarrett 是的,它们都已定义。我编写的程序实际上编译并运行得非常好,因此编译器能够找到相关文件和#defines。我认为这一定是某种 Eclipse IDE 错误。
-
是的,考虑到它实际上可以编译,我猜这是你的构建系统的问题,而不是你的源代码。您是否在 IDE 和命令行中使用完全相同的编译器?