2013-02-08 85 views
1

我正在使用C++在Android中进行编码(我正在使用cocos2d-x)。如何在Android中使用.so和.h文件?

现在,假设我有一个类,MyClass,带有.h和.cpp文件。我想从这些文件中创建一个.so。然后,我想在我的项目中加入.so,并通过#include "MyClass.h"访问它。可能吗?如果是这样,怎么样?谢谢!

+0

看到这里:http://stackoverflow.com/questions/10711047/the-completest-cocos2d-x-tutorial-guide-list – 2013-02-08 18:40:37

回答

1

要构建您的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类。

+0

嗨!谢谢您的回复。使用NDK独立工具链非常复杂。有没有办法使用ndk-build构建静态库?如果是这样,怎么样? – jmschuaquico 2013-02-09 04:27:40

+0

顺便说一句,我不打算编写Java来访问.so,只是C++。 – jmschuaquico 2013-02-09 04:32:24

相关问题