国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

MAC下將libpomelo連接到cocos2d-x

2019-11-14 20:02:01
字體:
來源:轉載
供稿:網友

摘要:借助GYP將libpomelo連接到Cocos2d-x項目并使項目能與服務端成功連接。
配置:OS X 10.9.4 + Xcode 6.0 + Cocos2d-x-3.2


一、部署GYP(Generate Your PRojets)

1、下載GYP項目

終端轉到要安裝GYP項目的目錄后,執行如下命令:

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

也可以使用云盤下載(2014-06-15)

2、打開終端切換至root權限

$ sudo -i

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

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

$ ./setup.py install

二、部署libpomelo

1、下載libpomelo項目。

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

也可以使用云盤下載(2014-06-15)

2、生成libpomelo的Xcode項目。

  • 編譯Mac端
$ ./pomelo_gyp $ xcodebuild -project pomelo.xcodeproj
  • 編譯iOS端
$ ./pomelo_gyp -DTO=ios$ ./build_ios
  • 編譯iOS模擬器端
$ ./pomelo_gyp -DTO=ios$ ./build_iossim

可能出現的錯誤

Q | 錯誤提示

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

A | 解決方法
打開build_iossim文件,將模擬器版本改為所需版本。


3、編譯運行libpomelo的Xcode項目。

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

4、打包靜態庫文件

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

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

  • libpomelo->build下的libpomelo.a
  • libpomelo->deps->jansson->build下的libjansson.a
  • libpomelo->deps->uv->build下的libuv.a

例如文件libpomelo.a所處的目錄結構如下
此處輸入圖片的描述

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

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

靜態庫文件打包后的效果如下圖:
打包后的效果

5、對libpomelo刪繁就簡。

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

  • libpomelo->include
  • libpomelo->deps->jansson->src
  • libpomelo->deps->uv->include

處理后的目錄結構示例如下:
刪繁就簡后的libpomelo目錄結構

三、將靜態庫導入Cocos2d-x項目

1、創建一個Cocos2d-x項目

Cocos2d-x項目的創建參考Mac下搭建Cocos2d-x-3.2的開發環境

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

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

3、添加靜態庫文件

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

點擊+,點擊Add Other…
靜態庫的位置

將導入的libpomelo項目中三個靜態文件添加進去。
添加靜態庫文件

4、添加頭文件搜索路徑

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

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

${PROJECT_DIR}/libpomelo/include${PROJECT_DIR}/libpomelo/deps/uv/include${PROJECT_DIR}/libpomelo/deps/jansson/src

${PROJECT_DIR}是Xcode提供的環境變量,代表項目所在路徑。

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

5、添加庫文件搜索路徑

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

四、驗證

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

1、運行服務器端

1)下載chatofpomelo-websocket

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

2)安裝依賴項

$ sh npm-install.sh

3)運行game-server

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

$ node app

2、運行客戶端

1)添加頭文件

HelloWorldScene.cpp文件中添加頭文件

#include "pomelo.h"

2)添加測試代碼

init()函數中添加如下代碼

/*向服務器請求連接*/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客戶端開發

3)編譯運行項目

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


可能出現的錯誤

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靜態庫,并在cocos2dx項目中引用:講解十分詳細,圖文豐富。

2、libpomelo官方README文檔:有較大參考價值。

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

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

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

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


完稿于2014/9/23。

?

原文鏈接:http://m.survivalescaperooms.com/tangyikejun/p/3988724.html


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 思南县| 周宁县| 乐陵市| 孟津县| 休宁县| 永济市| 时尚| 高要市| 蒙自县| 青田县| 石楼县| 阿尔山市| 乾安县| 伽师县| 海门市| 增城市| 观塘区| 叶城县| 汝州市| 石台县| 保康县| 怀安县| 东辽县| 五家渠市| 纳雍县| 信丰县| 韶关市| 襄樊市| 平昌县| 定安县| 聊城市| 遂昌县| 毕节市| 林甸县| 政和县| 皮山县| 万全县| 新余市| 喀喇沁旗| 金溪县| 望城县|