0

Vuforia の ImageTargets サンプルアプリで、jni/Android.mk で USE_OPENGL_ES_1_1 を true に設定し、AndroidManifest.xml の該当する行のコメントを外して変更することで、OpenGL ES 1.1 を使用してみました ()。プロジェクトを変換して C++ パースペクティブを持ち、ndk-build と適切なインクルード ディレクトリを関連付けた後、Android デバイスでアプリケーションを正常に実行できました。

ただし、問題は、jni/ImageTargets.cpp を開くと、OpenGL ES 2.0 コードが実行される場所から Eclipse からいくつかのエラーが発生することです。最初のエラーは次のとおりです。

説明 リソース パスの場所 タイプ シンボル 'vertexHandle' を解決できませんでした ImageTargets.cpp /ImageTargets/jni 行 402 セマンティック エラー

案の定、頂点ハンドルは 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 の設定を見逃していませんか?

4

1 に答える 1

0

私は解決策を見つけました: プロジェクトのプロパティに移動します -> C/C++ ビルド -> 検出オプション -> 「パスとシンボルの検出を自動化する」をチェックします

于 2013-03-06T05:21:21.570 に答える