我尝试在 Eclipse C/C++ 中使用一些 OpenGL 函数。eclipse 可以识别 GlClear 等一些“标准”函数,而 glBindBuffer() 和 glEnableVertexAttribArray() 等其他函数则不能。它们只是用红色下划线。
然而编译是成功的,只有这个令人不安的下划线..
我已经链接了 glut、GL、GLU 和 GLEW,我的操作系统是 arch linux。我使用 Eclipse 3.7.2
为了避免这些错误,我还需要做什么?
尝试右键单击您的项目并在弹出菜单中:索引 > 重建
下划线表示 C++ Indexer 无法识别符号。检查这是否有帮助:
如何让 Eclipse 索引 #ifdef .... #endif 中的代码
为了使用 OpenGL 2.0 函数,我在源文件中定义了 GL_GLEXT_PROTOTYPES 符号,但索引器没有选择它。它必须在项目设置中定义,位于:Project Properties > C/C++ General > Paths & Symbols。然后在重建索引后,错误消失了。
如果您使用 Eclipse CDT 来实际构建您的项目,最简单的解决方案是让 Eclipse 从构建过程中自动学习您的包含路径。
在您的项目属性中,转到 C/C++ Build->Discovery Options,然后选中“自动发现路径和符号”框。
glBindBuffer() 和 glEnableVertexAttribArray() 在 GL/gext.h 中声明,而不是在 GL/gl.h 中。如果将光标放在带有#include <GL/gl.h>的行上,右键单击它,然后选择“打开声明”,Eclipse 应该会打开它认为是标题的标题。您的实现可能会或可能不会自动将 <GL/gl.h> 包含在 <GL/gl.h> 中;值得检查。