我正在使用 C++ 在 Android 中进行编码(特别是我使用的是 cocos2d-x)。
现在,比方说,我有一个MyClass
带有 .h 和 .cpp 文件的类。我想用这些文件创建一个 .so 。然后,我想将 .so 包含在我的项目中并通过 .so 访问它#include "MyClass.h"
。可能吗?如果是这样,怎么做?谢谢!
我正在使用 C++ 在 Android 中进行编码(特别是我使用的是 cocos2d-x)。
现在,比方说,我有一个MyClass
带有 .h 和 .cpp 文件的类。我想用这些文件创建一个 .so 。然后,我想将 .so 包含在我的项目中并通过 .so 访问它#include "MyClass.h"
。可能吗?如果是这样,怎么做?谢谢!
要为 ARM 构建静态库,您可以使用NDK 独立工具链。
编译完成后,您可以使用Android NDK 生成文件.so
(Android.mk)在项目中包含该库,该文件如下所示:
LOCAL_PATH := $(call my-dir)
LOCAL_SRC_FILES := my_module.so
LOCAL_C_INCLUDES := $(LOCAL_PATH)/include
include $(PREBUILT_SHARED_LIBRARY)
您需要确保在正确的路径中包含标题 (/include)。
不确定您是否打算使用您的代码回到 Android 领域,但如果您希望在 .so/C/C++ 代码和 Java 之间建立一座桥梁,则需要在C,使用映射到 JNI 方法的静态System.loadLibrary('my_module')
导入和native
方法声明构建必要的 Java 类。