手把手教你把libpomelo加入cocos2d-x項目(Windows、Android、IOS平台),libpomelococos2d-x
Windows平台
作業系統:Windows7(64-bit)
VS版本:2013
Cocos2d-x版本:3.0
工程路徑:E:\cocos2d-prj\
1.從github下載libpomelo代碼
E:\cocos2d-prj\cocos2d\external> git clone https://github.com/NetEase/libpomelo.git
2.建立libpomelo的VS工程
E:\cocos2d-prj\cocos2d\external>cd libpomeloE:\cocos2d-prj\cocos2d\external\libpomelo>mkdir buildE:\cocos2d-prj\cocos2d\external\libpomelo>git clone https://github.com/martine/gyp.git build/gypE:\cocos2d-prj\cocos2d\external\libpomelo>build\gyp\gyp.bat --depth=. pomelo.gyp -Dlibrary=static_library -DTO=pc
如果遇到報錯(一個VS版本問題)
修改E:\snake\code\client\libpomelo\build\gyp\pylib\gyp\MSVSVersion.py檔案第188行
return versions[str(name)]
改為
return versions[“2010”]
修改後繼續執行指令碼
E:\cocos2d-prj\cocos2d\external\libpomelo>build\gyp\gyp.bat --depth=. pomelo.gyp -Dlibrary=static_library -DTO=pc
3.建立libuv的VS工程(執行E:\cocos2d-prj\libpomelo\deps\uv\vcbuild.bat指令碼即可)
E:\cocos2d-prj\cocos2d\external>cd libpomelo\deps\uvE:\cocos2d-prj\cocos2d\external\libpomelo\deps\uv>vcbuild.bat
4.開啟cocos2d工程,將下列vs項目加入工程(add existing project)
E:\cocos2d-prj\cocos2d\external\libpomelo\libpomelo.vcxprojE:\cocos2d-prj\cocos2d\external\libpomelo\deps\jansson\jansson.vcxprojE:\cocos2d-prj\cocos2d\external\libpomelo\deps\uv\libuv.vcxproj
5.修改工程版本
vs中右鍵上述工程,選擇菜單 Upgrade VC++ Compiler and Libraries
6.添加工程依賴
在cocos2d-prj工程上郵件,選擇 屬性 功能表項目,將上述三個工程添加為依賴,如
7.添加Include
8.添加系統lib引用Psapi.lib;Iphlpapi.lib;,如
Android平台
作業系統:Windows7(64-bit)
NDK版本:r9d (64-bit)
Cocos2d-x版本:3.0
工程路徑:E:\cocos2d-prj\
Android平台相對簡單,只要修改E:\cocos2d-prj\proj.android\jni\Android.mk檔案就可以了,總共三處如
IOS平台
作業系統:MAC MINI
XCODE版本:3.1.1
iphonesimulator : 6.1
Cocos2d-x版本:3.0
Python : 2.7
gyp工具
1.建立xcode工程,執行以下命令
cd pomelogyp --depth=. pomelo.gyp -Dlibrary=static_library -DTO=ioscd deps/uvgyp --depth=. uv.gyp -Dlibrary=static_library -DTO=ioscd ../janssongyp --depth=. jansson.gyp -Dlibrary=static_library -DTO=ios
2.產生靜態庫
cd pomeloxcodebuild -project deps/jansson/jansson.xcodeprojxcodebuild -project deps/uv/uv.xcodeprojxcodebuild -project pomelo.xcodeprojxcodebuild -project deps/jansson/jansson.xcodeproj -sdk iphonesimulator6.1 -arch i386xcodebuild -project deps/uv/uv.xcodeproj -sdk iphonesimulator6.1 -arch i386xcodebuild -project pomelo.xcodeproj -sdk iphonesimulator6.1 -arch i386
3.用lipo把兩個打包在一起
cd pomelolipo -create ./build/Default-iphoneos/libpomelo.a ./build/Default-iphonesimulator/libpomelo.a -output libpomelo.alipo -create ./deps/jansson/build/Default-iphoneos/libjansson.a ./deps/jansson/build/Default-iphonesimulator/libjansson.a -output libjansson.alipo -create ./deps/uv/build/Default-iphoneos/libuv.a ./deps/uv/build/Default-iphonesimulator/libuv.a -output libuv.a
4.修改xcode工程
在xcode中開啟cocos2d-x 項目,在項目target “Build Phases"將產生的3個 .a 靜態庫檔案加入到 "Link Binary With Libraries" 裡;
在"Build Settings" 的 “Header Search Paths” 裡加入三個目錄:
libpomelo/include
libpomelo/deps/jansson/src
libpomelo/deps/uv/include
注意目錄的絕對和相對位置
這樣就可以同時在真機和模擬器裡調用libpomelo靜態庫了。
Cocos2d-x 32alpha建立的Lua項目在android平台移植不了的問題
Cocos 3.0建立預設的Lua項目時,其Android項目可謂是非常不完整。產生的項目模版。根本就不包含C++的編譯。
你的異常實際上告訴你的是,你的項目libs目錄下,根本就沒有產生SO檔案。
我也嘗試過去修改這個預設的Android項目模版,不過修改量太大了,折騰了大半天才搞定。
我對你的建議是,不要使用Cocos來建Lua項目。就建普通的C++項目即可。普通的C++項目編譯通過了,就可以在libs目錄下得到SO庫了。
反正對於Android的Lua項目,其需要的並不是C++的代碼,而是一個SO庫檔案,
有了這個SO庫檔案,剩下的事就容易搞定了。
cocos2d-x在windows上寫好代碼編譯成android版本運行在真機上面調試,Get data from file(assets/)failed!
這是cocos2d-x的bug。改用cocos2d-x 0.12.0就好了。beta版難免有些問題