【问题标题】:Build error when using OpenGL in my program在我的程序中使用 OpenGL 时生成错误
【发布时间】: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 和命令行中使用完全相同的编译器?

标签: eclipse opengl ubuntu


【解决方案1】:

我通过激活“Preferences -> C/C++ -> Indexer -> Use active build configuration”然后重建项目解决了这个问题。它现在找到了符号。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-09
    • 2018-02-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多