Android.mk: 从另一个共享库访问一个共享库中的函数

Android.mk: accessing a function in a shared library from another shared library

我有第一个共享库:

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := one
LOCAL_SRC_FILES := one.cpp
include $(BUILD_SHARED_LIBRARY)

我想从第二个共享库调用第一个共享库中的函数:

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE    := two
LOCAL_SRC_FILES := two.c
LOCAL_SHARED_LIBRARIES := one
LOCAL_LDLIBS := -llog -landroid -L/path/obj/local/armeabi/ -lone
include $(BUILD_SHARED_LIBRARY)

在第一个共享库中,我有:

nm -D /path/obj/local/armeabi/libone.so | grep \ T
000046cd T _Z13setInputFramePcii

我在第二个共享库中调用与第一个库中定义的相同的函数:

void setInputFrame(char* data, int iWidth, int iHeight);

在链接第二个库时,Eclipse 说找不到函数。知道为什么吗?

出于其他一些原因,我需要将第一个库作为共享(非静态)库。

我正在混合使用 C++ 和 C。添加 extern "C" 解决了问题。