http://www.bozhiyue.com/anroid/wenzhang/2016/0506/65160.html
手把手教你把libpomelo 2 加入cocos2d-x项目(Windows、Android、IOS平台).修訂版本
Windows平台
===================================================
1.下載libpomole2 (暫定安裝於cocos2d\external)
git clone https://github.com/NetEase/libpomelo2.git
1.5 Install gyp(如果已經安裝 就忽略此步驟)
git clone https://chromium.googlesource.com/external/gyp
cd gyp
python setup.py install
安裝完畢
2. 進入
libpomole2目錄 執行下面指令(依據gyp安裝目錄不同 下面指令需要做一些變更)
D:\Task\gyp\gyp.bat --dept
h=. pomelo.gyp -Dlibrary=static_library -Duse_sys_openssl=false -DTo=pc
目錄下產生 libpomelo2.vcxproj 就是安裝完成
安裝選項範例
gyp
1
|
$ gyp --depth=. pomelo.gyp [options]
|
选项
-Dno_tls_support=[true | false], false
by default
-Duse_sys_openssl=[true | false], true
by default
-Dno_uv_support=[true | false], false
by default
-Duse_sys_uv=[true | false], false
by default
-Duse_sys_jansson=[true | false], false
by default
-Dpomelo_library=[static_library | shared_library], static_library
by default
-Dbuild_pypomelo=[true | false], false
by default.
-Dpython_header=, /usr/include/python2.7
by default.
-Dbuild_jpomelo=[true|false], false
by default.
-Dbuild_cspomelo=[true|false], false
by default.
- }
3.
修改deps/uv/vcbuild.bat
line 93 附近 將ˇgyp 的GIT 來源改為 https://chromium.googlesource.com/external/gyp
執行 vcbuild.bat
產生
libuv.vcxproj 表示完成
因為libpomelo2 已經將jansson 移除 所以看不到此目錄
4.新增現有專案至自己專案中
再自己專案點選滑鼠右鍵
選擇加入 加入現有專案 libuv,libpomelo2,openssl 三個
並且在自己專案 增加專案相依性
4.5 增加lib 路徑
VC++=>程式庫目錄
增加lib 指定目錄 $(SolutionDir)Default\lib
5.增加相關include
$(EngineRoot)external\libpomelo\include
$(EngineRoot)external\libpomelo\deps\uv\include
6.添加系统lib引用Psapi.lib;Iphlpapi.lib; libuv.lib;libpomelo2.lib;openssl.lib;
================================================================
操作系统: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 libpomelo
E:\cocos2d-prj\cocos2d\external\libpomelo>mkdir build
//路徑改為這一個 20160926 修正
git clone https://chromium.googlesource.com/external/gyp build/gyp
E:\cocos2d-prj\cocos2d\external\libpomelo>git clone https://github.com/martine/gyp.git build/gyp
E:\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\uv
E:\cocos2d-prj\cocos2d\external\libpomelo\deps\uv>vcbuild.bat
4.打开cocos2d工程,将下列vs项目加入工程(add existing project)
E:\cocos2d-prj\cocos2d\external\libpomelo\libpomelo.vcxproj
E:\cocos2d-prj\cocos2d\external\libpomelo\deps\jansson\jansson.vcxproj
E:\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文件就可以了,总共三处如下图
修正:若是添加libpomelo2 需修改如下部分
檔案一 cocos2d\external\libpomelo2\Android.mk
1.LOCAL_MODULE_FILENAME := libpomelo2
2.LOCAL_SRC_FILES
增加 src/tr/uv/pb_i.c \
src/tr/uv/pr_msg_json.c \
移除 src/tr/uv/pr_unit.c
檔案二 proj.android-studio\app\jni\Android.mk
1. $(call import-module,libpomelo2) 非 libpomelo
2. LOCAL_STATIC_LIBRARIES += pomelo_static
3. LOCAL_EXPORT_C_INCLUDES :=$(LOCAL_PATH)/../../../cocosd/external/libpomelo2/include
IOS平台
操作系统:MAC MINI
XCODE版本:3.1.1
iphonesimulator : 6.1
Cocos2d-x版本:3.0
Python : 2.7
gyp工具
1.创建xcode工程,执行以下命令
cd pomelo
gyp --depth=. pomelo.gyp -Dlibrary=static_library -DTO=ios
cd deps/uv
gyp --depth=. uv.gyp -Dlibrary=static_library -DTO=ios
cd ../jansson
gyp --depth=. jansson.gyp -Dlibrary=static_library -DTO=ios
2.生成静态库
cd pomelo
xcodebuild -project deps/jansson/jansson.xcodeproj
xcodebuild -project deps/uv/uv.xcodeproj
xcodebuild -project pomelo.xcodeproj
xcodebuild -project deps/jansson/jansson.xcodeproj -sdk iphonesimulator6.1 -arch i386
xcodebuild -project deps/uv/uv.xcodeproj -sdk iphonesimulator6.1 -arch i386
xcodebuild -project pomelo.xcodeproj -sdk iphonesimulator6.1 -arch i386
3.用lipo把两个打包在一起
cd pomelo
lipo -create ./build/Default-iphoneos/libpomelo.a ./build/Default-iphonesimulator/libpomelo.a -output libpomelo.a
lipo -create ./deps/jansson/build/Default-iphoneos/libjansson.a ./deps/jansson/build/Default-iphonesimulator/libjansson.a -output libjansson.a
lipo -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静态库了。