проблема про Adroid.mk - PullRequest
       28

проблема про Adroid.mk

1 голос
/ 12 августа 2011

Я новичок в Android NDK.

Есть 3 файла: "first.c, first.h, second.c", который я хочу скомпилировать с двумя общими библиотеками (libfirst.so, libsecond.so, второй с использованием первого)

ниже: Android.mk

LOCAL_PATH:= $(call my-dir)


# first lib
include $(CLEAR_VARS)

LOCAL_MODULE    := libtwolib-first
LOCAL_SRC_FILES := first.c

include $(BUILD_SHARED_LIBRARY)

# second lib
#
include $(CLEAR_VARS)

LOCAL_MODULE    := libtwolib-second
LOCAL_SRC_FILES := second.c

LOCAL_SHARED_LIBRARIES := libtwolib-first

include $(BUILD_SHARED_LIBRARY)

first.h

extern int first(int  x, int  y);

second.c

jint
Java_com_example_twolibs_TwoLibs_add( JNIEnv*  env,
                                      jobject  this,
                                      jint     x,
                                      jint     y )
{
    return first(x, y);
}

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

LOCAL_PATH:= $(call my-dir)

# first lib, which will be built statically
#
include $(CLEAR_VARS)

LOCAL_MODULE    := libtwolib-first
LOCAL_SRC_FILES := first.c

include $(BUILD_STATIC_LIBRARY)

# second lib, which will depend on and include the first one
#
include $(CLEAR_VARS)

LOCAL_MODULE    := libtwolib-second
LOCAL_SRC_FILES := second.c

LOCAL_STATIC_LIBRARIES := libtwolib-first

include $(BUILD_SHARED_LIBRARY)

Кто-нибудь может мне помочь?Большое спасибо ...

1 Ответ

0 голосов
/ 26 сентября 2011

Я сам новичок в этом, но, насколько я знаю, у вас может быть только одна общая библиотека. Чтобы использовать несколько библиотек, статически связать их, а затем собрать одну общую из статических.

...