2012-09-14 3 views
-7

Je fais un programme de réalité. J'ai été remis ce projet et im nouveau à la programmation de cygwin et d'androïde. Je dois utiliser cygwin pour compiler un de mes fichiers cpp. mais quand je fais un NDK-construire Cygwin cette erreur sort:LOCAL_SRC_FILES pointe vers un fichier manquant

$ 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. 

et ce sont mes codes 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)** 

Je ne suis pas un pro de la programmation donc je voudrais quelques conseils.

+0

- NUMÉRO RESOLU - – CtheW

+0

par intérêt comment avez-vous résoudre votre problème – alex

+0

Je suis face à la même question. Veuillez écrire la solution dans la section "Réponses" et acceptez-la. – Pallavi

Répondre

10

J'ai eu le même problème, j'ai essayé plusieurs chemins mais j'ai travaillé. Finalement résolu le problème en copiant simplement l'exemple de projet dans le dossier Développement \ Android \ vuforia-sdk-android-2-0-30 \ samples, puis en exécutant ndk-build via cygwin. Hope qui aide :-)

+0

+1. Dans le dossier 'samples', il y a le fichier' Readme.txt' avec le texte 'Veuillez télécharger les exemples d'applications sur https://developer.vuforia.com/resources/sample-apps et décompressez-les dans ce dossier'. –

+0

La solution aurait pu fonctionner pour ce cas mais pas même étroitement liée au problème décrit ci-dessus :( – user210504

6

Apparemment, par défaut Android.mk suppose que le dossier ImageTargets est situé à ../vuforia-sdk-android-x-x-xx/samples/ImageTargets-x-x-x, mais après avoir téléchargé les échantillons et les extraits dans le répertoire des échantillons, l'emplacement est le suivant: ../vuforia-sdk-android-x-x-xx/samples/vuforia-sampleapps-android-x-x-xx/ImageTargets-x-x-x. Donc, il s'est avéré qu'il y avait un sous-répertoire supplémentaire et c'est pourquoi la construction a échoué. Pour le faire fonctionner, j'édité le Android.mk comme suit:

LOCAL_SRC_FILES = /../../../build/lib/$(TARGET_ARCH_ABI)/libQCAR.so 
LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/../../../build/include 

devrait être remplacé

LOCAL_SRC_FILES = /../../../../build/lib/$(TARGET_ARCH_ABI)/libQCAR.so 
LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/../../../../build/include 

, où l'ensemble des /.. supplémentaires se charge de ce sous-dossier supplémentaire. Cette solution a fonctionné pour moi.

1

étape 1: Exemple de copie dans C: \ Développement \ applications \ vuforia-sdk-androïde-2-0-31 \ samples

étape 2: commande d'ouverture rapide

écriture commnad 1: cd C : \ développement \ Android \ vuforia-sdk-android-2-0-31 \ samples \ ImageTargets-2-0-7

écrire commnad 2: NDK-build

étape 3: projet d'importation dans les éclipses

étape 4: https://developer.vuforia.com/resources/dev-guide/step-3-compiling-running-vuforia-sample-app

afin de bâtir avec succès. Ne pas oublier de définir le chemin de ndk dans les variables d'environnement.

1

J'ai eu le même problème, je mets la NDK_TOOLCHAIN_VERSION variable r9, alors qu'il devait être soit 4,8 ou 4,4. Je l'ai changé en 4.8 et ça a marché. PS: Vérifier si le fichier manquant existe réellement ou non aidera.

0

Juste contribuer à la liste des solutions de travail, juste au cas où tout ce qui précède ne fonctionne pas.

Dans mon cas, il s'est avéré qu'il y avait un espace dans mon chemin. Cygwin n'aime pas beaucoup les espaces dans les chemins. Enlever les espaces dans mon chemin a corrigé le problème.

En guise de conseil, vous voudrez peut-être avoir votre répertoire de travail dans un chemin comme C:\projects\MyNativeProject et votre SDK Android et NDK sur les chemins sans espaces.

0

Je voudrais ajouter mon 2c, juste au cas où il aide une âme pauvre. Dans mon cas, le ndk n'a pas aimé la barre oblique arrière. à savoir le changement de

LOCAL_SRC_FILES := /foo/foo.so 

à

LOCAL_SRC_FILES := foo/foo.so 

résolu mon problème.

0

Utiliser le chemin dir par rapport fonctionne sur Mac:

-LOCAL_SRC_FILES := $(LOCAL_PATH)/lib/$(ARCH_PATH)/lib.so 
+LOCAL_SRC_FILES := ./lib/$(ARCH_PATH)/lib.so 
Questions connexes