我正在使用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