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

时间:2015-04-29 02:38:08

标签: android eclipse shared-libraries android.mk

我有第一个共享库:

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说它无法找到该函数。知道为什么吗?

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

1 个答案:

答案 0 :(得分:0)

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

相关问题