Android ndk NDK如何在同一个Android.mk中构建so和链接?
一个Android项目同时编译2个so文件。我们称他为第一个和第二个。我想在第一个SO中调用第二个SO中的函数。我该怎么做 文件内容和目录树如下所示: jni |-Android.mk |-myfiles2.c |-------第一图书馆 |-------|-myfiles1.c |-------|-Android.mk | myfiles1.c:Android ndk NDK如何在同一个Android.mk中构建so和链接?,android-ndk,Android Ndk,一个Android项目同时编译2个so文件。我们称他为第一个和第二个。我想在第一个SO中调用第二个SO中的函数。我该怎么做 文件内容和目录树如下所示: jni |-Android.mk |-myfiles2.c |-------第一图书馆 |-------|-myfiles1.c |-------|-Android.mk | myfiles1.c: int func1(){ return 123; } myfiles2.c: int func2(){ func1(); //
int func1(){
return 123;
}
myfiles2.c:
int func2(){
func1(); // this function in first so files
return 0;
}
首先是文件构建
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := module_lib1
LOCAL_SRC_FILES := myfiles1.c
LOCAL_LDLIBS += -llog
include $(BUILD_SHARED_LIBRARY)
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := module_lib2
LOCAL_SRC_FILES := myfiles2.c
LOCAL_LDLIBS += -llog
LOCAL_SHARED_LIBRARIES := module_lib1 // this is not work because fisrt file not build finish
include $(BUILD_SHARED_LIBRARY)
include firstlibdir/Android.mk
第二个so文件构建
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := module_lib1
LOCAL_SRC_FILES := myfiles1.c
LOCAL_LDLIBS += -llog
include $(BUILD_SHARED_LIBRARY)
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := module_lib2
LOCAL_SRC_FILES := myfiles2.c
LOCAL_LDLIBS += -llog
LOCAL_SHARED_LIBRARIES := module_lib1 // this is not work because fisrt file not build finish
include $(BUILD_SHARED_LIBRARY)
include firstlibdir/Android.mk
我的问题是如何首先构建libmodule_lib1.so并在第二个Android.mk中使用,定义“这不起作用”。发布您收到的确切错误消息。这意味着无法生成第二个so文件,因为第一个so文件未生成成功,第二个so文件无法生成,我可以先在同一个Android.mk文件生成中“include firstlibdir/Android.mk”吗