我已经创建了一个 android 应用程序,这里我的大部分代码都在 c 中,所以我使用 jni 创建了它。我必须创建socket.so
文件,我必须在其中使用libtest.so
.
在使用libtest.so
in socket.so 时我得到了error:undefined reference to function()
. 我的 function() 存在于libtest.so
. 所以为了通过建议来实现这一点,我创建了我的 Android.mk,如下所示:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := libtest
LOCAL_SRC_FILES := libtest.so
include $(PREBUILT_SHARED_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := socket
LOCAL_SHARED_LIBRARIES += libtest
LOCAL_SRC_FILES := source/interface.c source/file.c
LOCAL_LDFLAGS += libtest.a
LOCAL_C_INCLUDES := $(LOCAL_PATH)/../../libtest/jni/include
include $(BUILD_SHARED_LIBRARY)
但它需要libtest.so
&libtest.a
文件都存在。好像我只使用libtest.a
它工作得很好。
因为我的要求是创建 libtest.so 并将其包含在 socket.so 中,任何人都可以告诉我如何避免依赖 .a 文件来创建 .so 文件。
如果我要发表评论LOCAL_LDFLAGS += libtest.a
,那么我会得到error:undefined reference to function()
任何人请帮助我摆脱这个问题.......