Eclipse标记OpenGL函数无法解析
Posted
技术标签:
【中文标题】Eclipse标记OpenGL函数无法解析【英文标题】:Eclipse marks OpenGL functions cannot be resolved 【发布时间】:2012-05-02 19:26:16 【问题描述】:我尝试在 Eclipse C/C++ 中使用一些 OpenGL 函数。 eclipse 可以识别 GlClear 等一些“标准”函数,而 glBindBuffer() 和 glEnableVertexAttribArray() 等其他函数则不能。它们只是用红色下划线。
不管编译是否成功,就是这个令人不安的下划线..
我已经链接了 glut、GL、GLU 和 GLEW,我的操作系统是 arch linux。我使用eclipse 3.7.2
为了避免这些错误,我还需要做什么?
【问题讨论】:
尝试项目属性 -> c/c++ 常规 -> 路径符号 -> 库路径并添加缺少的库,也尝试清理/构建项目 我应该添加哪些缺少的库? 也许你应该检查你的 OpenGL 版本。glBindBuffer()
受 OpenGL 1.5 及更高版本支持,glEnableVertexAttribArray()
受 OpenGL 2.0 及更高版本支持。
【参考方案1】:
尝试右键单击您的项目并在弹出菜单中:索引 > 重建
【讨论】:
【参考方案2】:下划线表示 C++ Indexer 无法识别符号。检查这是否有帮助:
How can I get Eclipse to index code inside #ifdef .... #endif
为了使用 OpenGL 2.0 函数,我在源文件中定义了 GL_GLEXT_PROTOTYPES 符号,但索引器没有选择它。它必须在项目设置中定义,位于:项目属性 > C/C++ 常规 > 路径和符号下。然后重建索引后,错误就消失了。
【讨论】:
这对我有用。我刚刚添加了 GL_GLEXT_PROTOTYPES 符号,所有 Eclipse 索引器未解决的功能问题都消失了。谢谢。【参考方案3】:如果您使用 Eclipse CDT 来实际构建您的项目,最简单的解决方案是让 Eclipse 从构建过程中自动学习您的包含路径。
在您的项目属性中,转到 C/C++ Build->Discovery Options,然后选中“自动发现路径和符号”复选框。
glBindBuffer() 和 glEnableVertexAttribArray() 在 GL/glext.h 中声明,而不是在 GL/gl.h 中。如果将光标放在 #include
【讨论】:
以上是关于Eclipse标记OpenGL函数无法解析的主要内容,如果未能解决你的问题,请参考以下文章
VS2015+OpenGL4.0开发编译时弹出错误:glaux.lib(tk.obj) : error LNK2019: 无法解析的外部符号 _sscanf,该符号在函数 _GetRegistrySy