cocos2d-x jni相关目录分析
生活随笔
收集整理的這篇文章主要介紹了
cocos2d-x jni相关目录分析
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
Game_______src(游戲邏輯c/c++代碼) | |___proj.android(java工程文件夾)________jni(mk文件,java中使用的接口c/c++文件) | |___src(java代碼,入口函數(shù),Activity類等等) | |___....一系列java工程目錄文件 Engine______*.cpp | |__Android.mk | |__platform____android_____jni(java調(diào)用c/c+ +的函數(shù)定義及實(shí)現(xiàn);c/c++調(diào)用java的實(shí)現(xiàn)) | |_____java(java工程目錄,生成一個(gè)java包,定制java層的實(shí)現(xiàn)機(jī)制) | |_____*.cpp(不知道啥含義,可能是需要調(diào)用jni中,c/c++調(diào)用java的實(shí)現(xiàn)吧,不同平臺(tái)調(diào)用各自的接口文件,所以不同目錄) LOCAL_STATIC_LIBRARIES is only makes sense in shared library modules 這是官方文檔中的一句話,本來很疑惑,因?yàn)閏ocos2d-x中的cocos2d_static依然在其Android.mk文件中使用了該LOCAL_STATIC_LIBRARIES標(biāo)簽,將extension等一些拓展庫引用了進(jìn)來,最后sh cocos2d-x提供的一個(gè)native-build腳本成功把helloworld編譯成功,并且可運(yùn)行.所以就懷疑文檔的正確性了. 接著自己試驗(yàn),在一個(gè)BUILD靜態(tài)庫的mk中LOCAL_STATIC_LIBRARIES,(小插曲:NDK_MODULE_PATH需要提供,因?yàn)?(call import-module,importlib)的時(shí)候,importlib是NDK_MODULE_PATH中提供的路徑下的一個(gè)文件夾在其中搜索Android.mk文件,然后LOCAL_STATIC_LIBRARIES的時(shí)候,在這些Android.mk文件中搜索有無BUILD的該lib然后編譯.NDK_MODULE_PATH可以填寫多個(gè),以分號(hào)隔開,一般是在ndk-build NDK_MODULE_PATH=***:***:**) 然后ndk-build,無果...如果不設(shè)置一些選項(xiàng),只會(huì)去搜索jni文件下的Android.mk,按這種目錄存放,編譯還是沒有.o和.a文件生成,最后還是Google幫了忙,雖然方法很明確但是沒有把為什么說清楚,方法就是在Application.mk文件中指定APP_MODULES:=1*** 2***, 而文檔中是說,不指定該值,會(huì)去build所有的module..看來,static不再這個(gè)范圍中. cocos2d-x中,cocos2d-static最終是被game.so這個(gè)動(dòng)態(tài)庫包含,那么是不是意味著,靜態(tài)庫中的LOCAL_STATIC_LIBRARIES會(huì)在最中的so的mk中被展開,解析.其實(shí)這個(gè)時(shí)候cocos2d-x的mk文件依賴關(guān)系已經(jīng)說明了這個(gè)現(xiàn)象,但是還是自己寫一遍,然后生成了一個(gè)so文件,使用nm -D查看生成的so庫中的符號(hào),已經(jīng)包含了直接依賴的static library中的函數(shù)以及static library中依賴的另一個(gè)static library中的函數(shù).
轉(zhuǎn)載于:https://www.cnblogs.com/wang37921/archive/2013/04/09/3009980.html
總結(jié)
以上是生活随笔為你收集整理的cocos2d-x jni相关目录分析的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MonkeyRunner——如何在实体机
- 下一篇: WAMP 2.2 配置与IIS共用单IP