【问题标题】:Android NDK Plugin trouble reading OpenGL headerAndroid NDK 插件无法读取 OpenGL 标头
【发布时间】:2012-08-16 08:29:41
【问题描述】:

我正在尝试使用 ADT 附带的新 android NDK 插件来编写 OpenGL ES 应用程序。尽管我在Preferences -> Android -> NDK 下添加了正确的NDK 路径并在项目属性中设置了正确的Paths and Symbols,但我的所有gl 函数都得到了未定义的引用。我正在使用 Windows。

但我仍然得到像这样的未定义引用:

我正在使用CDT 8.0.2,因为显然较新的版本破坏了 NDK 插件查找路径的方式。我正在使用ADT 20.0.3。我的 Eclipse 版本是Juno 4.2.0。有谁知道为什么它找不到明显存在的标题?

Android.mk

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE    := libgweng
LOCAL_SRC_FILES := game.cpp

include $(BUILD_SHARED_LIBRARY)

【问题讨论】:

    标签: android windows eclipse android-ndk adt


    【解决方案1】:

    您无需使用 NDK 执行此操作,只需为 Android 构建编写适当的 makefile。

    查看NDK自带的hello-gl2示例中的源代码;注意这个例子的Android.mk

    【讨论】:

    • 我已经可以使用 ndk-build 和适当的 makefile 构建项目,那么 ndk 插件呢?
    • @TomFobear 我可以使用最新的 Eclipse CDT 和 NDK 插件构建基于 NDK 的项目,但您可能配置错误;您是否为您的项目启用了 C/C++ 支持?对于 Eclipse 下的 Android 项目,这是您必须手动执行的操作。
    • 是的,抱歉,忘了说我是通过右键单击项目来实现的,有一个“添加 c++ 行为”选项。我将使用我的 makefile 更新问题。另外,当我注释掉所有 GL 代码时,我可以很好地构建项目。
    • @TomFobear 再次查看该示例中的 Android.mk。如果您只是重新使用该 makefile 中的内容,则可以解决链接问题。
    • @TomFobear 标志-l 表示工具链的库名称,编译器知道它必须在链接阶段考虑这个库。变量 LOCAL_LDLIBS 只是为所有这些标志分配的容器,以保持事物井井有条,因此 NDK 也知道它必须在哪些变量中寻找什么。如果您想了解更多关于默认可用的所有库的信息,请查看<NDK root>/docs/STABLE-APIS.html
    猜你喜欢
    • 1970-01-01
    • 2011-07-22
    • 1970-01-01
    • 1970-01-01
    • 2011-05-26
    • 1970-01-01
    • 2016-09-14
    • 2021-07-08
    • 1970-01-01
    相关资源
    最近更新 更多