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