【问题标题】:Eclipse #ifdef error using JNI, Android NDK and Vuforia使用 JNI、Android NDK 和 Vuforia 的 Eclipse #ifdef 错误
【发布时间】:2013-02-17 03:39:51
【问题描述】:

使用 Vuforia 的 ImageTargets 示例应用程序,我尝试通过在 jni/Android.mk 中将 USE_OPENGL_ES_1_1 设置为 true 并取消注释并更改 AndroidManifest.xml () 中的相应行来使用 OpenGL ES 1.1。在转换项目使其具有 C++ 透视图并关联 ndk-build 和正确的包含目录后,我可以在我的 Android 设备上成功运行该应用程序。

但是,问题是,一旦我打开 jni/ImageTargets.cpp,我会从 Eclipse 中收到几个错误,这些错误都来自 OpenGL ES 2.0 代码将执行的地方,第一个是:

描述资源路径位置类型符号“vertexHandle”可以 无法解析 ImageTargets.cpp /ImageTargets/jni line 402 Semantic 错误

果然,vertexHandle 定义在 ImageTargets.cpp 顶部的“#ifdef USE_OPENGL_ES_2_0”块内。因为没有定义USE_OPENGL_ES_2_0(根据Android.mk),所以代码应该可以编译成功,果然,ndk-build没有报任何问题。所以似乎只有 Eclipse 报告了问题,当我运行项目时,Eclipse 说,“您的项目包含错误,请在运行您的应用程序之前修复它们。”因此,我不能再运行我的应用程序了。从某种意义上说,这有点奇怪,直到我打开 ImageTargets.cpp 并且 Eclipse “发现”了错误。

到目前为止,我发现的最佳解决方法是删除或注释掉这些行(这不应该引起问题,因为不应该定义 USE_OPENGL_ES_2_0)...有没有更好的方法来处理这个问题?我是否错过了 Eclipse 中应该解决此问题的设置?

【问题讨论】:

    标签: eclipse android-ndk java-native-interface eclipse-cdt vuforia


    【解决方案1】:

    我找到了解决方案:转到项目属性 -> C/C++ 构建 -> 发现选项 -> 选中“自动发现路径和符号”

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多