【问题标题】:glext.h function unresolvedglext.h 函数未解析
【发布时间】:2012-11-27 21:28:51
【问题描述】:

我正在使用 Eclipse 创建一个原生 android 项目。它使用opengl es 1.1。

我在使用“gext.h”中定义的函数时遇到问题。我可以使用“gext.h”中定义的宏,但是当我尝试使用“gext.h”中定义的任何函数时,它说它无法解析该函数​​。

我知道 glext.h 已被弃用,但我正在关注一本书,我想让它工作。我使用了书籍源代码,也遇到了同样的问题。

如何使用 glext.h 中定义的函数?

【问题讨论】:

  • 我忘了说我使用的是 Windows 7 64 位

标签: android eclipse opengl-es android-ndk


【解决方案1】:

当您包含头文件时,您只能获得该头文件中的内容。在您的情况下,您将获得完全包含在头文件中的宏和函数声明。那些只是声明函数存在,而不是实际代码,这是函数定义。

要访问实际函数(定义),您需要链接到库。 unresolved functions 错误意味着编译器知道该函数存在,但链接器不知道在哪里找到它。

我认为您的解决方案可能只是链接 OpenGL ES 1.x 库。为此,请检查您的Android.mk 文件,并确保设置LOCAL_LDLIBS 的行包含-lGLESv1_CM。像这样:

LOCAL_LDLIBS := -llog -ldl -lGLESv1_CM

链接记录器、动态链接器和 OpenGL ES 1.x 库。

我从here 获取我的信息。我在 Google 的网站上找不到规范来源。

【讨论】:

  • 感谢您的回复,这就是我的想法,虽然很好的解释,但这不是问题。我链接到库,我可以使用 gl.h 中定义的函数,而不是 glext.h。我突然想到 glext.h 已被弃用,以至于它的功能甚至不再编译到实际的 api 中,但我真的不这么认为。我在 android.mk 文件中的实际行是:LOCAL_LDLIBS := -landroid -llog -lEGL -lGLESv1_CM -lOpenSLES
  • 我会在时间到后给你 50 个代表,因为这完全回答了问题,虽然,这并不能解决我机器上的问题,所以如果你或其他任何人有其他问题建议,我仍在寻找解决方案
猜你喜欢
  • 2016-03-14
  • 1970-01-01
  • 2016-05-10
  • 2019-09-03
  • 2021-03-08
  • 1970-01-01
  • 1970-01-01
  • 2021-06-03
  • 1970-01-01
相关资源
最近更新 更多