Eclipse CDT 编辑器无法识别 OpenGL 扩展
Posted
技术标签:
【中文标题】Eclipse CDT 编辑器无法识别 OpenGL 扩展【英文标题】:Eclipse CDT editor doesn't recognize OpenGL extensions 【发布时间】:2012-05-11 18:01:34 【问题描述】:我在 Eclipse 中使用顶点数组对象和顶点缓冲区对象,但编辑器似乎无法识别函数声明。该程序编译并执行,没有任何抱怨。
(请注意,错误是“无法解析函数。”)
我尝试过同时使用 GLee 和 GLEW,但结果是一样的。关于如何让 Eclipse 识别编辑器中的功能的任何想法?
【问题讨论】:
那些不是扩展函数。它们是 核心 OpenGL 函数。 请不要张贴位图。发布代码本身。 对我来说,YRH 对similar question 的回答解决了这个问题。 【参考方案1】:一般来说,像这样的 OpenGL 函数指针必须由解析为某个函数名称的宏来定义。这对 IDE 及其试图弄清楚发生了什么的尝试造成了严重破坏。
最终,如果您的 IDE 无法处理它,您只需要找到一种方法来适应它。
【讨论】:
【参考方案2】:我不知道 OpenGl 扩展是否有什么特别之处,但我确实知道通常我必须深入到包含我的库的 .h 文件的根文件夹,并将所有文件夹显式添加到我的包含中路径。添加最顶层的父级并没有为编辑器削减它。一旦我将它们全部添加完毕,我就会重新构建索引(通常是为了让预先输入的功能正常工作)。奇怪的是编辑器比编译器更挑剔,但我已经看到它发生在多个库中。
【讨论】:
【参考方案3】:我遇到了这个确切的问题,唯一解决它的方法是启动一个全新的 C++ 项目,首先包含#include <GL/glew.h>
,然后复制其余代码。如果项目设置时没有 glew.h 作为第一次导入,它永远不会由于某种原因重新配置自己。
我尝试在 Eclipse 中手动弄乱项目和全局属性;除了上述之外,没有任何效果。
RE:Nicol Bolas 的回答,确实 Eclipse 无法很好地解析宏以生成所有工具提示和自动完成,但它会识别函数并强制执行正确的参数。
只要确保您拥有最新版本的 Eclipse CDT(和 GLEW)即可。
【讨论】:
【参考方案4】:在某些情况下,当您重建索引时它可能会起作用(右键单击项目>索引>重建)
【讨论】:
以上是关于Eclipse CDT 编辑器无法识别 OpenGL 扩展的主要内容,如果未能解决你的问题,请参考以下文章
C 文件与 C++ 文件的 Eclipse CDT 索引器结果不同