J'ai maintenant perdu deux jours à ce sujet. Tout pointeur dans la résolution du problème serait vraiment utile. Mon fichier Android.mk est comme ci-dessous. Le problème est que libst.so devrait être lié en tant que système avec mon opti exécutable. Mais quand j'ouvre l'execuatble dans un Hex, il liste le chemin complet vers le fichier so libst.so. Alors que les autres fichiers dépendants sont répertoriés correctement. Il en résulte que l'erreur CAN NOT LINK EXECUTABLE ne peut finalement pas être effectuée car le fichier est recherché dans le chemin local par ex.Objet partagé du système de liaison exe Android (fichier .so) en tant qu'objet partagé local (fichier .so)
/media/ExtHDD/NIEL/OPTI/TEST/optimize/workspace/android/obj/local/armeabi-v7a/libst.so » non trouvé plutôt que de chercher à l'intérieur /system/lib/libst.so où il devrait idéalement chercher.
les pointeurs ou suggestions seront d'une grande aide. Merci.
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
SRC_PATH := ${LOCAL_PATH}/../../..
LOCAL_MODULE := libsmp
LOCAL_SRC_FILES := $(LOCAL_PATH)/lib/libs_beta/armeabi-v7a/libsmp.so
include $(PREBUILT_SHARED_LIBRARY)
include $(CLEAR_VARS)
LOCAL_ARM_NEON := true
LOCAL_MODULE := libocv
LOCAL_SRC_FILES := ${LOCAL_PATH}/lib/libs_beta/armeabi-v7a/libOCv.so
include $(PREBUILT_SHARED_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := libst
LOCAL_SRC_FILES := ${LOCAL_PATH}/lib/libs_beta/armeabi-v7a/libst.so
include $(PREBUILT_SHARED_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := opti
LOCAL_SRC_FILES := \
$(SRC_PATH)/main.cpp \
LOCAL_C_INCLUDES += \
$(SRC_PATH) \
$(SRC_PATH)/util \
$(SRC_PATH)/src \
$(LOCAL_PATH)/lib/include_beta \
$(LOCAL_PATH)/lib/include_beta/opencv \
$(LOCAL_PATH)/lib/include_beta/opencv2
LOCAL_SHARED_LIBRARIES += libc libsmp libocv libst
LOCAL_CFLAGS += -std=c++11 -fopenmp -fpermissive -mfloat-abi=softfp -mfpu=neon -flax-vector-conversions
LOCAL_LDLIBS += -llog -L$(SYSROOT)/usr/lib
LOCAL_CFLAGS += -fPIE
LOCAL_LDFLAGS += -fPIE -pie
include $(BUILD_EXECUTABLE)
L'éditeur Hex montre mon exe comme suit libsmp.so.libOCv.so./media/ExtHDD/NIEL/OPTI/TEST/optimize/workspace/android/obj/local/armeabi-v7a/libst .so.liblog.so.libstdC++. so.libm.so.libc.so.libdl.so Comme vous pouvez le voir, libst.so a un chemin complet. alors qu'il devrait apparaître comme les autres fichiers donc – Niel
Ceci est commandé par la façon dont libsmp.so était lié. –
@AlexCohn Je ne suis pas sûr de ce que vous suggérez. Tous les autres fichiers apparaissent correctement. J'ai démonté le makefile ici mais même si je supprime libsmp.so et j'inclus juste libst.so j'obtiens le même résultat – Niel