我正在使用C++在Android中进行编码(我正在使用cocos2d-x)。如何在Android中使用.so和.h文件?
现在,假设我有一个类,MyClass
,带有.h和.cpp文件。我想从这些文件中创建一个.so。然后,我想在我的项目中加入.so,并通过#include "MyClass.h"
访问它。可能吗?如果是这样,怎么样?谢谢!
我正在使用C++在Android中进行编码(我正在使用cocos2d-x)。如何在Android中使用.so和.h文件?
现在,假设我有一个类,MyClass
,带有.h和.cpp文件。我想从这些文件中创建一个.so。然后,我想在我的项目中加入.so,并通过#include "MyClass.h"
访问它。可能吗?如果是这样,怎么样?谢谢!
要构建您的ARM静态库,您可以使用NDK standalone toolchain。
一旦你编译了.so
,您可以在使用Android NDK make file(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')
import和native
方法声明映射到你的JNI方法来构建必需的Java类。
嗨!谢谢您的回复。使用NDK独立工具链非常复杂。有没有办法使用ndk-build构建静态库?如果是这样,怎么样? – jmschuaquico 2013-02-09 04:27:40
顺便说一句,我不打算编写Java来访问.so,只是C++。 – jmschuaquico 2013-02-09 04:32:24
看到这里:http://stackoverflow.com/questions/10711047/the-completest-cocos2d-x-tutorial-guide-list – 2013-02-08 18:40:37