0

我有一个第一个共享库:

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

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

4

1 回答 1

0

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

于 2015-04-29T04:32:37.407 回答