2013-02-08 119 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

相關問題