Ошибка компиляции библиотеки .c Eclipse для Android

Я использую Eclipse для Windows, Android SDK и Android NDK (я уверен, что все пути установлены правильно).

Я ищу компиляцию локата библиотеки .c в папке jni, но возникает ошибка. Эта библиотека зависит от внешних библиотек .so, это мой Makefile, Android.mk и библиотека: папка jni.

Android.mk:

LOCAL_PATH := $(call my-dir)

 #---------------------------------------------------------------

 include $(CLEAR_VARS)
 LOCAL_MODULE := pdbeatdetection
 LOCAL_C_INCLUDES := $(LOCAL_PATH)\C:\PROGRAMMING\pd-0.45-4\src
 LOCAL_CFLAGS := -DPD
 LOCAL_SRC_FILES := pdbeatdetection.c
 LOCAL_LDLIBS := -L$(LOCAL_PATH)\C:\PROGRAMMING\PdCore\libs\armeabi\ -lpdnative
 include $(BUILD_SHARED_LIBRARY)

Makefile:

all:
C:\PROGRAMMING\android-ndk-r10d\ndk-build.cmd
mkdir ../tmp
cp ..\libs\armeabi\libpdBeatDetection.so ..\tmp\pdbeatdetection.pd_linux
cd ..\tmp && zip externals.zip *.pd_linux && mv externals.zip ..\res\raw
rm -rf ..\tmp   

Я выполнил несколько руководств, но все еще не могу решить эту проблему. Не могли бы вы дать мне предложения по компиляции библиотеки, чтобы избежать следующей ошибки?

ОШИБКА:

Description Resource    Path    Location    Type
make.exe: *** [obj/local/armeabi/libpdbeatdetection.so] Error 1 Discoteque C/C++ Problem

Спасибо!


person Mattia    schedule 26.05.2015    source источник
comment
LOCAL_C_INCLUDES := $(LOCAL_PATH)\C:\PROGRAMMING\pd-0.45-4\src выглядит странно.   -  person timrau    schedule 26.05.2015


Ответы (1)


Если ваш код зависит от внешнего файла .so, вы должны правильно объявить его с помощью макроса PREBUILT_SHARED_LIBRARY, например:

LOCAL_PATH := $(call my-dir)

#dependency
include $(CLEAR_VARS)
LOCAL_MODULE := pdnative
LOCAL_SRC_FILES := C:/PROGRAMMING/PdCore/libs/$(TARGET_ARCH_ABI)/libpdnative.so
LOCAL_EXPORT_C_INCLUDES := C:/PROGRAMMING/pd-0.45-4/src
include $(PREBUILT_SHARED_LIBRARY)

#your module
include $(CLEAR_VARS)
LOCAL_MODULE := pdbeatdetection
LOCAL_SRC_FILES := pdbeatdetection.c
LOCAL_CFLAGS := -DPD
include $(BUILD_SHARED_LIBRARY)

Если этого недостаточно для решения вашей проблемы, сообщите нам об ошибке, позвонив напрямую ndk-build.cmd.

person ph0b    schedule 27.05.2015