手把手教你把libpomelo加入cocos2d-x項目(Windows、Android、IOS平台),libpomelococos2d-x

來源:互聯網
上載者:User

手把手教你把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版難免有些問題
 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.