Mac下编译libpomelo静态库,并在cocos2dx项目中引用

最近在学习cocos2dx的过程中需要和服务器进行交互,所以这几天在学习libpomelo静态库的编译和使用。之前在windows系统下编译libpomelo,并在VS中引入比较顺利;但是,目前对Mac系统和XCode不是很熟悉,所以多花了些时间。不过,最终还是成功了,在这里就将我编译引入libpomelo静态库的过程记录下来,也分享给和我一样遇到问题的朋友们。

准备工作

libpomelo下载地址:https://github.com/NetEase/libpomelo或者http://pan.baidu.com/s/1B2o8Y,下载解压后目录结构为

此时,我们需要通过gyp来生成工程文件并进行编译,从官网下载gyp速度非常慢,这是我从其他地方下载到的,分享给大家http://pan.baidu.com/s/1hqmn3N2,不能保证是最新版的,下载解压后得到

下面开始安装gyp,大家看到setup.py应该知道这个python文件应该和安装有关,使用help命令查看相关信息,发现build和install命令可用于编译和安装

下面进行编译

安装时,由于存在权限问题,所以需要加上sudo命令来提升权限,同时需要输入密码

gyp安装成功后,我们的准备工作就做好了。

编译静态库

在终端使用如下命令:

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

首先,进入刚刚下载的libpomelo目录,然后开始编译ios设备静态库

编译静态库成功!

接下来开始编译ios虚拟机的静态库

这里出现了错误,是因为我的xcode中没有安装IOS6.1的虚拟机。点击xcode下的Preferences菜单项,切换到Downloads选项卡,如下,安装虚拟机

这里我没有等待安装完成,直接切换到另一个已安装虚拟机的系统下,后面的“√”表示已安装

现在重新编译,编译成功

现在我们可以查看编译生成的静态库文件

libpomelo->build下:

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

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

此时,静态库文件已经成功编译,共有6个.a文件。

打包静态库文件

在终端使用如下命令:

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

我们可以把ios设备(arm)和ios虚拟机(i386)的静态库用lipo命令打包在一起,方便我们使用。

输入上述命令后,在libpomelo目录下会生成3个打包后的.a文件

此时,我们就可以在项目中使用这3个静态库了。

接下来,将需要的静态库及相关头文件提取出来。将libpomelo->include文件夹、libpomelo->deps->jansson->src文件夹、libpomelo->deps->uv->include文件夹下的文件保留,另外将3个.a文件放于新建的目录lib中,最终的目录结构如下

cocos2dx项目引入静态库

将上面包含静态库和头文件的目录加入项目中,在XCode中右击项目,“Add Files to XXX”,选择上面的目录,然后添加

此时在我们的项目中可以看到刚刚添加的目录

然后,点击项目的Target,选择“Build  Phases”选项卡,找到“Link Binary With Libraries”

点击“+”,点击“Add Other…”,选择3个静态库,点击Open按钮

此时,静态库已加入到项目中

现在,我们切换到“Build Settings”选项卡,找到“Search Paths”,在“Header Search Paths”和“Library Search Paths”中分别加入3项,分别是libpomelo中的include,deps->jansson->src和deps->uv->include的物理路径。

然后,关闭XCode,重新打开项目,编译。此时在”jansson.h”中会报错

我们将此处的尖括号改为引号,“hashtable.c”也做同样处理,再次编译,编译成功。

现在我们就可以在项目中使用libpomelo库提供的服务了。

首先,我们在AppDelegate.cpp中引入头文件#include “pomelo.h”,然后编译,此时在”map.h”中又有错误

将其改为#include “ngx-queue.h”就可以了,再次编译,编译成功!

这些头文件引用的问题相信大家都能搞定(可能你遇到的问题和我不一样,但应该都是小问题)。

连接pomelo服务器

我们在程序中加入如下代码:

编译成功后,运行程序,控制台输出如下,此时由于没有服务器,所以连接失败。

接下来,在VM虚拟机中打开pomelo服务器,将其激活。然后我们在MAC下的浏览器中输入ip和端口,查看服务器状态处于激活状态(我用的服务器代码在这里https://github.com/NetEase/chatofpomelo-websocket,当然代码中的ip和端口需要自己修改)

再次运行我们的程序,控制台输出如下

至此,我们已经成功编译了libpomelo静态库,将其引入项目,并测试连接pomelo服务器成功!

Mac下编译libpomelo静态库,并在cocos2dx项目中引用,布布扣,bubuko.com

时间: 2024-10-03 12:22:28

Mac下编译libpomelo静态库,并在cocos2dx项目中引用的相关文章

使用CMake在Linux下编译tinyxml静态库

环境:CentOS6.6+tinyxml_2_6_21.下载并解压tinyxml_2_6_2.zip unzip tinyxml_2_6_2.zip 2.在tinyxml文件夹里创建一个CMakeLists.txt文件,并将内容设置为 cmake_minimum_required(VERSION 2.8) project(TinyXMLLIB) include_directories(./) aux_source_directory(./ LIB_SRCS) #add_definitions(-

macox下编译snappy静态库

源码地址:https://github.com/google/snappy 下载 git clone https://github.com/google/snappy 编译 进入snappy源码目录,执行命令: ./autogen.sh 报错 "./autogen.sh: line 3: aclocal: command not found" 通过http://superuser.com/questions/657925/cygwin-rtorrent-installing-libto

用vs2010编译vigra静态库及简单使用举例

1.  从 http://ukoethe.github.io/vigra/ 下载最新源代码vigra-1.10.0-src-with-docu.tar.gz,并加压缩到D:\soft\vigra,生成vigra-1.10.0文件夹: 2.  从http://www.cmake.org/cmake/resources/software.html下载CMake并安装: 3.  打开CMake,Where is thesource code: D:/soft/vigra/vigra-1.10.; Wh

C++开发新版本vs使用旧版本vs编译的静态库动态库

关于vs潜在的升级问题概述 (Visual C++)查看官网的介绍:潜在的升级问题概述 (Visual C++).主要问题: 1. 如果使用 /GL(全程序优化)进行编译,则生成的对象文件只能使用生成它时所用的同一工具集进行链接.即若在编译静态库时开启了全程序优化,那么编译出的静态库不可移植. 2. 在 Visual Studio 2013 及更低版本中,不能保证使用不同编译器工具集和运行时库版本生成的对象文件 (OBJ).静态库 (LIB).动态库 (DLL) 和可执行文件 (EXE) 之间的

linux下编译安装boost库

转载:http://www.cnblogs.com/oloroso/p/4632848.html linux下编译安装boost库 linux下编译安装boost库 1.下载并解压boost 1.58 源代码 下载 解压 2.运行bootstrap.sh 3.使用b2进行构建 构建成功的提示 4.安装boost库到指定目录 5.测试一下 代码 编译运行 先看一下系统环境 Linux o-pc 3.19.0-22-generic #22-Ubuntu SMP Tue Jun 16 17:15:15

mac下编译支持arm64的ffmpeg

mac下编译支持arm64的ffmpeg 2015年1月份开始苹果开始要求所有新提交AppStore的应用支持arm64,之前的ffmpeg如果没有编译支持arm64的版本的话,也将被拒绝.在此直接给出编译脚本,在ffmpeg2.5.2下测试通过.本次只编译支持h264解码的功能,需要其他的请自行改编译命令 脚本下载地址: http://www.mingjianhua.com/post/buildffmpegforarm64.html 用法 如果需要同时支持armv7和arm64,则通过以下命令

Mac下编译vlc-android

前言 突然想整整VLC-Android,然后就下一个玩玩看,这里记录点遇到的问题. 声明 欢迎转载,但请保留文章原始出处:) 博客园:http://www.cnblogs.com 农民伯伯: http://over140.cnblogs.com 正文 一般按照官网来就行(https://wiki.videolan.org/AndroidCompile),以下是遇到的几个问题: 1.环境变量配置 export ANDROID_NDK=/Users/nmbb/Android/android-ndk-

Mac下编译Thrift的时候Python2.7会报错 site-packages': Operation not permitted

具体错误详细如下: Making install in py /usr/local/bin/python setup.py build running build running build_py running build_ext /Library/Developer/CommandLineTools/usr/bin/make install-exec-hook /usr/local/bin/python setup.py install --root=/ --prefix=/usr runn

Mac OS X10.10_xcode6.1_ios8.1环境下,编译lame静态库libmp3lame.a,支持arm64 armv7s x86_64 i386 armv7指令集

最近升级了系统到Mac OS X 10.10 并且更新了XCode6.1和iOS 8.1之前app用到的libmp3lame.a静态库,也要支持64位的模拟器(x86_64)和64位的真机(arm64)指令集.需要重新编译查阅了下资料,按照如下步骤,并做了些注释和改动 1.http://sourceforge.net/projects/lame/files/lame/3.99/ 下载lame的最新版本解压到一个文件夹里例如 lame,全路径如下/Users/8wm/Desktop/lame 2.