私はAndroidアプリケーションを作成しました。ここでは、ほとんどのコードがcにあるため、jniを使用して作成しました。socket.so
を使用する必要があるファイルを作成する必要がありlibtest.so
ます。
libtest.so
insocket.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()
いずれか1つのplzは私がこの問題から抜け出すのを助けます.......