<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        Mac下將libpomelo連接到Cocos2d-x的解決方案

        來源:懂視網(wǎng) 責編:小采 時間:2020-11-09 08:31:52
        文檔

        Mac下將libpomelo連接到Cocos2d-x的解決方案

        Mac下將libpomelo連接到Cocos2d-x的解決方案:摘要:借助GYP將libpomelo連接到Cocos2d-x項目并使項目能與服務端成功連接。 配置:OS X 10.9.4 Xcode 6.0 Cocos2d-x-3.2 方法一:http://cn.cocos2d-x.org/tutorial/showid=1561 一、部署GYP(Generate Your Projet
        推薦度:
        導讀Mac下將libpomelo連接到Cocos2d-x的解決方案:摘要:借助GYP將libpomelo連接到Cocos2d-x項目并使項目能與服務端成功連接。 配置:OS X 10.9.4 Xcode 6.0 Cocos2d-x-3.2 方法一:http://cn.cocos2d-x.org/tutorial/showid=1561 一、部署GYP(Generate Your Projet

        摘要:借助GYP將libpomelo連接到Cocos2d-x項目并使項目能與服務端成功連接。 配置:OS X 10.9.4 Xcode 6.0 Cocos2d-x-3.2 方法一:http://cn.cocos2d-x.org/tutorial/show?id=1561 一、部署GYP(Generate Your Projets) 1、下載GYP項目 終端轉(zhuǎn)到要安裝GYP項

        摘要:借助GYP將libpomelo連接到Cocos2d-x項目并使項目能與服務端成功連接。

        配置:OS X 10.9.4 + Xcode 6.0 + Cocos2d-x-3.2

        方法一:http://cn.cocos2d-x.org/tutorial/show?id=1561

        一、部署GYP(Generate Your Projets)

        1、下載GYP項目

        終端轉(zhuǎn)到要安裝GYP項目的目錄后,執(zhí)行如下命令:

        1

        $ svn checkout http://gyp.googlecode.com/svn/trunk/ gyp-read-only

        也可以直接下載:gyp.zip


        2、打開終端切換至root權(quán)限

        1

        $ sudo -i

        回車后需要輸入本機用戶密碼(就是電腦登陸密碼)。輸入時不會有視覺反饋(不會顯示出星號)。


        3、進入GYP項目目錄進行setup

        1

        $ ./setup.py install


        二、部署libpomelo

        1、下載libpomelo項目

        1

        $ git clone https://github.com/NetEase/libpomelo.git

        也可以直接下載:libpomelo-master.zip


        2、生成libpomelo的Xcode項目

        編譯Mac端

        1

        2

        $ ./pomelo_gyp

        $ xcodebuild -project pomelo.xcodeproj

        編譯iOS端

        1

        2

        $ ./pomelo_gyp -DTO=ios

        $ ./build_ios

        編譯iOS模擬器端

        1

        2

        $ ./pomelo_gyp -DTO=ios

        $ ./build_iossim


      1. 可能出現(xiàn)的錯誤

      2. Q | 錯誤提示:

        xcodebuild: error: SDK "iphonesimulator6.1" cannot be located.

        A | 解決方法:

        打開build_iossim文件,將模擬器版本改為所需版本。


        3、編譯運行l(wèi)ibpomelo的Xcode項目

        打開生成的pomelo.xcodeproj文件,編譯運行。


        4、打包靜態(tài)庫文件

        對libpomelo進行編譯后會產(chǎn)生幾個靜態(tài)庫文件。如果想要同時針對多平臺進行開發(fā),那么可以將針對不同平臺的同名靜態(tài)庫文件打包在一起。

        編譯所生成的靜態(tài)庫文件有以下三種,分別放在如下文件夾的子文件夾中:

      3. libpomelo->build下的libpomelo.a

      4. libpomelo->deps->jansson->build下的libjansson.a

      5. libpomelo->deps->uv->build下的libuv.a

      6. 例如文件libpomelo.a所處的目錄結(jié)構(gòu)如下

        通過如下命令可以將圖片中藍色選中的兩個文件合并打包到新的路徑下。

        1

        $ lipo -create [filePath1] [filePath2] -output [pathOfNewFile]

        靜態(tài)庫文件打包后的效果如下圖:


        5、對libpomelo刪繁就簡

        在項目中新建一個lib文件夾,將合成的靜態(tài)庫文件統(tǒng)一放進去。對于項目的其他部分,只需保留如下的幾個文件夾文件:

      7. libpomelo->include

      8. libpomelo->deps->jansson->src

      9. libpomelo->deps->uv->include

      10. 處理后的目錄結(jié)構(gòu)示例如下:

        三、將靜態(tài)庫導入Cocos2d-x項目

        1、創(chuàng)建一個Cocos2d-x項目

        Cocos2d-x項目的創(chuàng)建參考Mac下搭建Cocos2d-x v3.2的開發(fā)環(huán)境。


        2、將libpomelo添加到Cocos2d-x項目中

        在XCode中右擊項目,Add Files to “XXX”,按下圖添加libpomelo文件夾:

        3、添加靜態(tài)庫文件

        點擊項目的Target,選擇Build Phases選項卡,找到Link Binary With Libraries,

        點擊+,點擊Add Other…,

        將導入的libpomelo項目中三個靜態(tài)文件添加進去。

        4、添加頭文件搜索路徑

        切換到Build Settings選項卡,找到Search Paths條目,在User Header Search Paths和Library Search Paths中分別加入3項,分別是libpomelo文件夾下include,deps->jansson->src和deps->uv->include這三個文件夾的絕對路徑。


        可以采用相對路徑的方式添加,將以下三行加入即可:

      11. ${PROJECT_DIR}/libpomelo/include

      12. ${PROJECT_DIR}/libpomelo/deps/uv/include

      13. ${PROJECT_DIR}/libpomelo/deps/jansson/src

      14. ${PROJECT_DIR}是Xcode提供的環(huán)境變量,代表項目所在路徑。

        Tip:為了獲取文件夾的絕對路徑,先將項目中的文件夾用Finder打開,再將文件夾拖動到終端,即可。


        5、添加庫文件搜索路徑

        同樣在Search Paths條目中,找到Library Search Paths項,加入上述三個路徑。


        四、驗證

        在項目中添加一段代碼來驗證libpomelo已經(jīng)安裝成功。本例所使用的服務器端為chatofpomelo-websocket。


        1、運行服務器端

        1)下載chatofpomelo-websocket

        1

        $ git clone https://github.com/NetEase/chatofpomelo-websocket.git

        2)安裝依賴項

        1

        $ sh npm-install.sh

        3)運行g(shù)ame-server

        在終端進入chatofpomelo-websocket項目下的game-server文件夾。執(zhí)行:

        1

        $ node app


        2、運行客戶端

        1)添加頭文件

        在HelloWorldScene.cpp文件中添加頭文件

        1

        #include "pomelo.h"


        2)添加測試代碼

        在init()函數(shù)中添加如下代碼:

        1

        2

        3

        4

        5

        6

        7

        8

        9

        10

        11

        12

        13

        14

        15

        16

        17

        18

        19

        /*向服務器請求連接*/

        const char * ip = "127.0.0.1";

        int port = 3014; //服務器端chatofpomelo-websocket為客戶端提供的連接端口號。

        pc_client_t * pClient = pc_client_new();

        struct sockaddr_in address;

        memset(&address,0,sizeof(struct sockaddr_in));

        address.sin_family = AF_INET;

        address.sin_port = htons(port);

        address.sin_addr.s_addr = inet_addr(ip);

        if (pc_client_connect(pClient, &address))

        {

        CCLOGINFO("***** Connection Failed! *****");

        pc_client_destroy(pClient);

        }

        else

        {

        CCLOGINFO("***** Connection Succeed! *****");

        pc_client_destroy(pClient);

        }

        代碼可參考pomelo客戶端開發(fā)。


        3)編譯運行項目

        若運行項目后在output中輸出cocos2d: ***** Connection Succeed! *****,說明libpomelo配置成功。

      15. 可能出現(xiàn)的錯誤

      16. Q | 錯誤提示:

        Undefined symbols for architecture x86_64:

        "_FSEventStreamCreate",

        referenced from:_uv__fsevents_init in libuv.a(fsevents.o)

        "_FSEventStreamInvalidate",

        referenced from: _uv__fsevents_close in libuv.a(fsevents.o)

        "_FSEventStreamRelease",

        referenced from: _uv__fsevents_close in libuv.a(fsevents.o)

        "_FSEventStreamScheduleWithRunLoop",

        referenced from: _uv__fsevents_schedule in libuv.a(fsevents.o)

        "_FSEventStreamStart",

        referenced from: _uv__fsevents_schedule in libuv.a(fsevents.o)

        "_FSEventStreamStop",

        referenced from: _uv__fsevents_close in libuv.a(fsevents.o)


        ld: symbol(s) not found for architecture x86_64

        clang: error: linker command failed with exit code 1 (use -v to see invocation)

        A | 解決方法:

        針對Mac,在Build Settings選項中的Linking條目下的Other Linker Flags中添加

        -framework CoreFoundation

        -framework CoreServices

        針對iOS,不需要添加上述Flags。


        參考源:Libraries to compile libuv on OS X


        五、參考鏈接

        1、Mac下編譯libpomelo靜態(tài)庫,并在Cocos2d-x項目中引用(講解十分詳細,圖文豐富)

        2、libpomelo官方README文檔(有較大參考價值)

        3、pomelo客戶端開發(fā)(同樣屬于官方文檔,是鏈接2的中文版)

        4、Mac下Cocos2d-x連接pomelo服務器(寫得比較簡潔,把必要的部分都寫進去了)

        5、遷移到Mac(如果有些意外情況可嘗試參考,該文價值量較低)

        6、手把手教你把pomelo客戶端組件libpomelo加入Cocos2d-x 3.0項目(Windows、Android、iOS平臺)(官方文檔,添加組件的另一種方式,相對比較繁瑣)


        來源網(wǎng)址:http://www.cnblogs.com/tangyikejun/p/3988724.html

        方法二:http://www.cnblogs.com/yangxq/p/3791682.html

        最近在學習cocos2dx的過程中需要和服務器進行交互,所以這幾天在學習libpomelo靜態(tài)庫的編譯和使用。之前在windows系統(tǒng)下編譯libpomelo,并在VS中引入比較順利;但是,目前對Mac系統(tǒng)和XCode不是很熟悉,所以多花了些時間。不過,最終還是成功了,在這里就將我編譯引入libpomelo靜態(tài)庫的過程記錄下來,也分享給和我一樣遇到問題的朋友們。

        準備工作

        libpomelo下載地址:https://github.com/NetEase/libpomelo或者http://pan.baidu.com/s/1B2o8Y,下載解壓后目錄結(jié)構(gòu)為

        此時,我們需要通過gyp來生成工程文件并進行編譯,從官網(wǎng)下載gyp速度非常慢,這是我從其他地方下載到的,分享給大家http://pan.baidu.com/s/1hqmn3N2,不能保證是最新版的,下載解壓后得到

        下面開始安裝gyp,大家看到setup.py應該知道這個python文件應該和安裝有關(guān),使用help命令查看相關(guān)信息,發(fā)現(xiàn)build和install命令可用于編譯和安裝

        下面進行編譯

        安裝時,由于存在權(quán)限問題,所以需要加上sudo命令來提升權(quán)限,同時需要輸入密碼

        gyp安裝成功后,我們的準備工作就做好了。

        編譯靜態(tài)庫

        在終端使用如下命令:

         ./pomelo_gyp -DTO=ios
         ./build_ios
         ./build_iossim

        首先,進入剛剛下載的libpomelo目錄,然后開始編譯ios設備靜態(tài)庫

        編譯靜態(tài)庫成功!

        接下來開始編譯ios虛擬機的靜態(tài)庫

        這里出現(xiàn)了錯誤,是因為我的xcode中沒有安裝IOS6.1的虛擬機。點擊xcode下的Preferences菜單項,切換到Downloads選項卡,如下,安裝虛擬機

        這里我沒有等待安裝完成,直接切換到另一個已安裝虛擬機的系統(tǒng)下,后面的“√”表示已安裝

        現(xiàn)在重新編譯,編譯成功

        現(xiàn)在我們可以查看編譯生成的靜態(tài)庫文件

        libpomelo->build下:

        libpomelo->deps->jansson->build下:

        libpomelo->deps->uv->build下:

        此時,靜態(tài)庫文件已經(jīng)成功編譯,共有6個.a文件。

        打包靜態(tài)庫文件

        在終端使用如下命令:

         lipo -create 文件1 文件2 -output 新文件

        我們可以把ios設備(arm)和ios虛擬機(i386)的靜態(tài)庫用lipo命令打包在一起,方便我們使用。

        輸入上述命令后,在libpomelo目錄下會生成3個打包后的.a文件

        此時,我們就可以在項目中使用這3個靜態(tài)庫了。

        接下來,將需要的靜態(tài)庫及相關(guān)頭文件提取出來。將libpomelo->include文件夾、libpomelo->deps->jansson->src文件夾、libpomelo->deps->uv->include文件夾下的文件保留,另外將3個.a文件放于新建的目錄lib中,最終的目錄結(jié)構(gòu)如下

        cocos2dx項目引入靜態(tài)庫

        將上面包含靜態(tài)庫和頭文件的目錄加入項目中,在XCode中右擊項目,“Add Files to XXX”,選擇上面的目錄,然后添加

        此時在我們的項目中可以看到剛剛添加的目錄

        然后,點擊項目的Target,選擇“Build Phases”選項卡,找到“Link Binary With Libraries”

        點擊“+”,點擊“Add Other…”,選擇3個靜態(tài)庫,點擊Open按鈕

        此時,靜態(tài)庫已加入到項目中

        現(xiàn)在,我們切換到“Build Settings”選項卡,找到“Search Paths”,在“Header Search Paths”和“Library Search Paths”中分別加入3項,分別是libpomelo中的include,deps->jansson->src和deps->uv->include的物理路徑。

        然后,關(guān)閉XCode,重新打開項目,編譯。此時在”jansson.h”中會報錯

        我們將此處的尖括號改為引號,“hashtable.c”也做同樣處理,再次編譯,編譯成功。

        現(xiàn)在我們就可以在項目中使用libpomelo庫提供的服務了。

        首先,我們在AppDelegate.cpp中引入頭文件#include “pomelo.h”,然后編譯,此時在”map.h”中又有錯誤

        將其改為#include “ngx-queue.h”就可以了,再次編譯,編譯成功!

        這些頭文件引用的問題相信大家都能搞定(可能你遇到的問題和我不一樣,但應該都是小問題)。

        連接pomelo服務器

        我們在程序中加入如下代碼:

        編譯成功后,運行程序,控制臺輸出如下,此時由于沒有服務器,所以連接失敗。

        接下來,在VM虛擬機中打開pomelo服務器,將其激活。然后我們在MAC下的瀏覽器中輸入ip和端口,查看服務器狀態(tài)處于激活狀態(tài)(我用的服務器代碼在這里https://github.com/NetEase/chatofpomelo-websocket,當然代碼中的ip和端口需要自己修改)

        再次運行我們的程序,控制臺輸出如下

        至此,我們已經(jīng)成功編譯了libpomelo靜態(tài)庫,將其引入項目,并測試連接pomelo服務器成功!

        備注3:http://blog.csdn.net/hsyj_0001/article/details/9751819

        最近聽說pomelo這個開源的游戲服務器框架不錯,文檔也比較詳細(這都是聽說,實際上.....還是接著往下看吧)于是拿來研究研究。因為做iphone游戲的緣故,所以打算在Mac OS X上安裝,按照官方的文檔指南,pomelo終于安裝成功,除了node.js在安裝過程中出過一些意外還是比較順利。

        接下來在安裝客戶端libpomelo庫時按照官方地址https://github.com/NetEase/libpomelo提示的方法卻發(fā)生了各種問題。作為一個開源產(chǎn)品只有自己會用其他人都無法編譯安裝,怎么能擴大推廣呢,真尼瑪坑爹啊。

        首先,官方提示前提要安裝GYP。GYP是個啥???干嘛用的?去哪下載?如何安裝?

        先從GYP鏈接的地址把GYP下載下來

        [plain] view plaincopy

        1. svn checkout http://gyp.googlecode.com/svn/trunk/ gyp-read-only


        進入gyp-read-only目錄,但是還是不知道如何安裝,如是看到有setup的文件通過./setup.py --help查看幫助信息,得知./setup.py build可以編譯,然后執(zhí)行./setup.py install編可以安裝。但是執(zhí)行./setup.py install時會提示error: /usr/local/bin/gyp: Operation not permitted,是由于當前用戶權(quán)限的問題,所以需要重新執(zhí)行sudo ./setup.py install方可成功。

        下面開始正式編譯libpomelo庫,首先執(zhí)行g(shù)it clone https://github.com/NetEase/libpomelo.git命令下載源代碼.(如果git命令在Mac系統(tǒng)中是內(nèi)置的,如果在windows環(huán)境下需要安裝)。執(zhí)行cd libpomelo命令進入下載的源代碼目錄,根據(jù)官方的指南編譯ios環(huán)境下的庫./pomelo_gyp -DTO=ios,但是會顯示錯誤信息:python: can't open file '/usr/local/bin/gyp_main.py': [Errno 2] No such file or directory,這明顯是安裝GYP過程中g(shù)yp_main.py文件沒有安裝成功。所以根據(jù)網(wǎng)上的一些解決辦法,我將GYP目錄拷貝到libpomelo目錄下,然后執(zhí)行./gyp-read-only/gyp --depth=. pomelo.gyp -Dlibrary=static_library -DTO=ios,終于構(gòu)建成功,其實這條指令就是pomelo_gyp中的內(nèi)容,只不過由于目錄層次的問題,我單獨在外面直接執(zhí)行罷了。

        下面開始按照指南的說明執(zhí)行./build_iossim編譯靜態(tài)庫時發(fā)現(xiàn)報錯,沒有找到指定的sdk6.1,于是在網(wǎng)上各種百度各種谷歌,就是沒有發(fā)現(xiàn)解決方法,唯一有過相似遭遇的解決方法是拿到其他XCode5的機器上編譯,這種解決方法不徹底也不科學。于是用pico build_iossim命令打開編譯配置文件看看到底是什么原因。原來編譯參數(shù)-sdk iphonesimulator6.1指定的版本在我的開發(fā)環(huán)境中過高,我本地使用sdk只有5.0,所以將該文件中的6.1全部改為5.0再執(zhí)行Ctrl+X退出編譯狀態(tài),再執(zhí)行./build_iossim命令便可編譯成功。

        很難想象網(wǎng)易這樣的一個產(chǎn)品說明竟然做得這么簡單,除了參與開發(fā)的人員能夠熟練構(gòu)建開發(fā)環(huán)境診斷一些問題,像我們一些剛剛接觸入門的開發(fā)者來說很難入手。

        建議網(wǎng)易完善一下環(huán)境構(gòu)建手冊和開發(fā)手冊,文檔不是寫給自己看的,是寫給沒有接觸這些產(chǎn)品的開發(fā)者閱讀的,所以要設身處地從入門者的角度出發(fā),甚至可以把讀者設想為0基礎(chǔ)的開發(fā)者,step-by-step地指導開發(fā),這樣才能更好地推廣這套產(chǎn)品。

        后面抽時間把libpomelo添加到cocos2d-x的項目工程中,嘗試調(diào)通client和Server端通信。

        教程連接:

        http://www.cnblogs.com/yangxq/p/3791682.html

        https://github.com/NetEase/pomelo/wiki/pomelo%E5%AE%A2%E6%88%B7%E7%AB%AF%E5%BC%80%E5%8F%91

        http://cn.cocos2d-x.org/tutorial/show?id=1561

        https://github.com/NetEase/pomelo/wiki/Home-in-Chinese

        、Mac下編譯libpomelo靜態(tài)庫,并在Cocos2d-x項目中引用(講解十分詳細,圖文豐富)

        2、libpomelo官方README文檔(有較大參考價值)

        3、pomelo客戶端開發(fā)(同樣屬于官方文檔,是鏈接2的中文版)

        4、Mac下Cocos2d-x連接pomelo服務器(寫得比較簡潔,把必要的部分都寫進去了)

        5、遷移到Mac(如果有些意外情況可嘗試參考,該文價值量較低)

        6、手把手教你把pomelo客戶端組件libpomelo加入Cocos2d-x 3.0項目(Windows、Android、iOS平臺)(官方文檔,添加組件的另一種方式,相對比較繁瑣)

        聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        Mac下將libpomelo連接到Cocos2d-x的解決方案

        Mac下將libpomelo連接到Cocos2d-x的解決方案:摘要:借助GYP將libpomelo連接到Cocos2d-x項目并使項目能與服務端成功連接。 配置:OS X 10.9.4 Xcode 6.0 Cocos2d-x-3.2 方法一:http://cn.cocos2d-x.org/tutorial/showid=1561 一、部署GYP(Generate Your Projet
        推薦度:
        標簽: 連接 解決 Mac
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 色在线亚洲视频www| 亚洲色偷偷色噜噜狠狠99网| 一本久久A久久免费精品不卡| 免费看的一级毛片| 国产成人精品久久亚洲高清不卡| 国产黄色片在线免费观看| 亚洲国产成人久久一区二区三区| 国产无遮挡吃胸膜奶免费看视频| 男男gay做爽爽免费视频| 亚洲性日韩精品国产一区二区| 一级美国片免费看| 亚洲色WWW成人永久网址| 99视频在线免费看| 亚洲av日韩av无码av| 成年美女黄网站色大免费视频| 国产精品亚洲va在线观看| 国产成人高清亚洲| 免费A级毛片无码专区| 亚洲乱人伦精品图片| 免费看一级做a爰片久久| 黄床大片免费30分钟国产精品 | 深夜A级毛片视频免费| 红杏亚洲影院一区二区三区| 最近中文字幕大全免费版在线| 亚洲永久中文字幕在线| 国产精品酒店视频免费看| 中文字字幕在线高清免费电影| 亚洲尹人九九大色香蕉网站| 成年美女黄网站色大免费视频| 国产精品成人69XXX免费视频| 亚洲男人天堂av| 日韩一级在线播放免费观看| 久久国产精品免费一区二区三区| 亚洲精品在线播放视频| 国产成人免费片在线视频观看| 久久久精品视频免费观看| 亚洲精品日韩中文字幕久久久| 免费a级毛片在线观看| 久久久久久AV无码免费网站| 亚洲精品天堂成人片AV在线播放| 亚洲黄片手机免费观看|