-11

私は拡張現実プログラムをやっています。私はこのプロジェクトを手渡され、cygwin と android プログラミングは初めてです。cpp ファイルの 1 つをコンパイルするには、cygwin を使用する必要があります。ただし、cygwin で ndk-build を実行すると、次のエラーが発生します。

$ ndk-build
Android NDK: ERROR:/cygdrive/c/project/jni/Android.mk:QCAR-prebuilt: LOCAL_SRC_FILES points to a missing file   
Android NDK: Check that /cygdrive/c/project/jni//../../../build/lib/armeabi/libQCAR.so exists  or that its path is correct
/cygdrive/c/android-ndk-r8b/build/core/prebuilt-library.mk:43: *** Android NDK: Aborting    .  Stop.

これは私の android.mk コードです:

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)
LOCAL_MODULE := QCAR-prebuilt
LOCAL_SRC_FILES = /../../../build/lib/$(TARGET_ARCH_ABI)/libQCAR.so
LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/../../../build/include
include $(PREBUILT_SHARED_LIBRARY)
include $(CLEAR_VARS)

LOCAL_MODULE := ImageTargets
# The TARGET_PLATFORM defines the targetted Android Platform API level
TARGET_PLATFORM := android-5
# This variable determines the OpenGL ES API version to use:
# If set to true, OpenGL ES 1.1 is used, otherwise OpenGL ES 2.0.
USE_OPENGL_ES_1_1 := false
# Set OpenGL ES version-specific settings.
ifeq ($(USE_OPENGL_ES_1_1), true)
    OPENGLES_LIB  := -lGLESv1_CM
    OPENGLES_DEF  := -DUSE_OPENGL_ES_1_1
else
    OPENGLES_LIB  := -lGLESv2
    OPENGLES_DEF  := -DUSE_OPENGL_ES_2_0
endif

LOCAL_CFLAGS := -Wno-write-strings $(OPENGLES_DEF)

LOCAL_LDLIBS := \
    -llog $(OPENGLES_LIB)



LOCAL_SHARED_LIBRARIES := QCAR-prebuilt

LOCAL_SRC_FILES := ImageTargets.cpp SampleUtils.cpp Texture.cpp

LOCAL_ARM_MODE := arm

include $(BUILD_SHARED_LIBRARY)**

私はプログラミングのプロではないので、いくつかのガイダンスが必要です。

4

7 に答える 7

11

同じ問題があり、複数のパスを試しましたが、うまくいきませんでした。最後に、サンプル プロジェクトを Development\Android\vuforia-sdk-android-2-0-30\samples フォルダーにコピーし、cygwin を介して ndk-build を実行するだけで問題を解決しました。それが役立つことを願っています:-)

于 2012-12-21T17:37:16.223 に答える
1

同様の問題がありました。変数NDK_TOOLCHAIN_VERSIONをr9にしましたが、4.8または4.4のいずれかでなければなりませんでした。私はそれを4.8に変更しましたが、うまくいきました。

PS: 不足しているファイルが実際に存在するかどうかを確認すると役立ちます。

于 2013-12-25T20:29:08.020 に答える
1

ステップ 1 : サンプルを C:\Development\Android\vuforia-sdk-android-2-0-31\samples にコピーします

ステップ 2 : コマンド プロンプトを開く

書き込みコマンド 1 : cd C:\Development\Android\vuforia-sdk-android-2-0-31\samples\ImageTargets-2-0-7

書き込みコマンド 2 : ndk-build

ステップ 3 : プロジェクトを Eclipse にインポートする

ステップ 4 : https://developer.vuforia.com/resources/dev-guide/step-3-compiling-running-vuforia-sample-app

正常にビルドします。環境変数に ndk のパスを設定することを忘れないでください。

于 2013-11-06T08:34:11.937 に答える
0

上記のすべてが機能しなかった場合に備えて、機能するソリューションのリストに貢献するだけです。

私の場合、パスにスペースがあることがわかりました。Cygwin は、パス内のスペースをあまり好みません。パスのスペースを削除すると、問題が修正されました。

ヒントとして、作業ディレクトリを次のようなパスにC:\projects\MyNativeProject配置し、Android SDK と NDK をスペースなしのパスに配置することをお勧めします。

于 2016-01-27T14:38:53.760 に答える
0

相対ディレクトリ パスを使用すると、Mac で動作します。

-LOCAL_SRC_FILES := $(LOCAL_PATH)/lib/$(ARCH_PATH)/lib.so
+LOCAL_SRC_FILES := ./lib/$(ARCH_PATH)/lib.so
于 2016-11-07T04:02:45.173 に答える