如何在新项目中将 prebuild .so(C 类)文件中的函数调用到 C++ 类中。例如,我有一个 project-1,它创建了一个 prebuild .so 文件。现在在这个项目中,我有一个名为“androidNdk”的 C++ 文件。在这个类中,我只有一个返回整数值的函数。
int myFunction()
{
int number = 10;
return number;
}
这个类的头文件
int myFunction();
我创建了一个新项目并加载此 .so 文件并在 C++ 类中调用 myfunction() 。像这样这是一个名为“newAndroidNdk”的新类。
void newFunction()
{
int str = myFunction();
printf("%s", str);
}
问题是当我使用 ndk-build 命令编译这个项目时,它会给我这个错误“未定义对 myfunction 的引用”。
这是 jni -> lib 文件夹中的 Android.mk
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := libndkfunction-prebuilt
LOCAL_SRC_FILES := libndkfunction.so
LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/include
include $(PREBUILT_SHARED_LIBRARY)
这是新项目 Android.mk 文件
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
# Here we give our module name and source file(s)
LOCAL_MODULE := ndkfun
LOCAL_SRC_FILES := ndkfun.c
LOCAL_SHARED_LIBRARIES := libndkfunction-prebuilt
LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/jni/include
include $(BUILD_SHARED_LIBRARY)
帮我解决这个问题