文档章节

创建cocos2d-x静态库为Xcode编译提速

yoyoso
 yoyoso
发布于 2014/12/30 11:34
字数 956
阅读 2685
收藏 3
点赞 2
评论 0

把以前写的一个帖子内容转到这里来,写得比较乱,有时间再整理整理。

cocos2d-x项目编译太慢太长一直很让人诟病,特别是Xcode中的archive,要是再出几次错,就忒折磨人了,小小研究了下把基础库生成静态库嵌入到工程里面的方法,提高cocos2d-x项目编译速度,希望对一些人有帮助吧。

把cocos2d-x的cocos2d_libs工程从xcode游戏工程中删掉,用xcode单独打开ccocos2d_libs工程,其路径为YourApp/cocos2d/build/cocos2d_libs.xcodeproj

选 择target为“build all libs for iOS”, 在其右先选择模拟器,编译工程。等编译完成后,应该是已经生成五个静态库文件,但是在xcode里面看可能是红色的,这是xcode的bug,选中任意一 个静态库文件,在xcode的界面右侧显示其详情,可以看到其路径,路径的最后一项可能是Debug,而实际值可能是Debug-iphoneos或者 Debug-iphonesimulator,复制这个路径,去掉最后面的Debug,然后在终端里面用open命令打开,就可以看到生成的静态库放在 Debug-iphonesimulator下面了,同样地,再选择iOS Device进行编译,生成的静态库会放在Debug-iphoneos里了

Debug- iphonesimulator里面的静态库是适用于模拟器的, Debug-iphoneos里面的静态库是适用于真机的,这可以通过类似于lipo -info libPrint.a的命令进行查看,为了通用起见可以将这两者进行合并,这样生成的静态库既可以在模拟器下运行,也可以在真机下运行,合并的命令类似于 下面的:

lipo -create ./Debug-iphonesimulator/libCocosDenshion\ iOS.a  ./Debug-iphoneos/libCocosDenshion\ iOS.a  -output $OUTPUTDIR_PATH/libCocosDenshion\ iOS.a

方便起见,最好是写一个脚本将5个静态库进行合并。

将5个静态库单独放入工程路径下的某个文件夹下,最好是你游戏工程的cocos2d目录下,然后在Build Phase里的Link Binary with Libraries中添加这5个静态库。接着在build setting里的header search path里加上头文件路径,比如我用的就是:$(SRCROOT)/../cocos2d/cocos/platform/ios,这样可以让它自己去找头文件,然后编译就没问题了。


特别说明的是:生成的静态库很大,最大的静态库会超过1G,如果不是多人合作的话不建议加入到git或svn中

能否跟进cocos2d-x源代码中打断点呢?

不是不可能也是有办法的:
首先在cocos2d-x的工程中打上断点 ,然后点击view ->navigators ->show breakpoint navigators 后 右击选择你刚打的断点,首先选择 share breakpoint 然后点击 move breakpoint to后选择你运行的项目(据我测试应该是User)后,然后转到你运行的项目debug即可
参考:http://www.cocoachina.com/ask/questions/show/4537/

以上说的是Debug模式,要发布App时需要重新生成Release模式下的静态库,再添加到你的项目中发布。也可以一开始就把Debug静态库和Release静态库全部生成,一劳永逸

附:静态库合并shell脚本

#!/bin/bash
CURRENT_PATH=`pwd`
OUTPUTDIR_PATH=./staticlibrary
echo $CURRENT_PATH
echo $OUTPUTDIR_PATH
cd $OUTPUTDIR_PATH
rm -f ./*.a
cd $CURRENT_PATH
lipo -create ./Debug-iphonesimulator/libCocosDenshion\ iOS.a  ./Debug-iphoneos/libCocosDenshion\ iOS.a  -output $OUTPUTDIR_PATH/libCocosDenshion\ iOS.a
lipo -create ./Debug-iphonesimulator/libchipmunk\ iOS.a  ./Debug-iphoneos/libchipmunk\ iOS.a  -output $OUTPUTDIR_PATH/libchipmunk\ iOS.a
lipo -create ./Debug-iphonesimulator/libcocos2dx-extensions\ iOS.a  ./Debug-iphoneos/libcocos2dx-extensions\ iOS.a  -output $OUTPUTDIR_PATH/libcocos2dx-extensions\ iOS.a
lipo -create ./Debug-iphonesimulator/libbox2d\ iOS.a  ./Debug-iphoneos/libbox2d\ iOS.a  -output $OUTPUTDIR_PATH/libbox2d\ iOS.a
lipo -create ./Debug-iphonesimulator/libcocos2dx\ iOS.a  ./Debug-iphoneos/libcocos2dx\ iOS.a  -output $OUTPUTDIR_PATH/libcocos2dx\ iOS.a



© 著作权归作者所有

共有 人打赏支持
yoyoso
粉丝 48
博文 124
码字总数 43673
作品 0
南京
高级程序员
如何在多个移动平台上创建新的cocos2d-x项目

如何在多种平台上创建新的cocos2d-x项目,今天我们将开始学习如何把著名的Cocos2d SimpleGame从objective-C移植到c++, 通过使用cocos2d-x引擎,在win32/iPhone/android/沃Phone这些平台上运行...

长平狐
2012/08/29
1K
0
疯狂ios讲义之创建cocos2d项目(2)

cocos2d项目如何支持ARC iOS 5中所支持的全新特性ARC(Automatic Reference Counting)首次在iOS系统中提供了自动内存管理,从而避免因为对retain、release、autorelease这些命令的错误调用而...

博文视点
2014/04/10
874
1
Cocos2d-JS 3.16 RELEASE_NOTES_CN.md

Table of Contents generated with DocToc Cocos2d-x 3.16 Release Notes 改动列表 v3.16 特性 特性介绍 Cocos2d-x 3.16 Release Notes 改动列表 Full Changelog v3.16 该版本使用如下的And......

何三思
2017/11/10
0
0
Cocos2d-x(Win32 Android Ios)

创建windows平台项目 一、 搭建windows开发环境 官网上显示cocos2d-x支持win7、winxp、vista系统但我只在win7上用过以下说明均是在win7系统上的编译器使用vs2010。 1、 安装vs2010 2、...

lying
2013/09/05
0
0
疯狂ios讲义之创建cocos2d项目(2)

13.3.2 cocos2d项目如何支持ARC iOS 5中所支持的全新特性ARC(Automatic Reference Counting)首次在iOS系统中提供了自动内存管理,从而避免因为对retain、release、autorelease这些命令的错...

博文视点
2014/04/11
101
0
Cocos2d-x跨Android&iOS平台开发入门

本教程由泰然教程组出品 Cocos2D是一个非常棒而且非常容易使用的游戏框架,但是,由于它是基于objc语言的,所以你只能使用它来开发ios和mac下面的游戏。 假如你可以使用和cocos2d相似的api来...

长平狐
2012/08/29
2.1K
0
cocos2d-X学习之引擎源码目录结构介绍

Cocos2d-x的目录结构如下: 目录的具体结构介绍如下: Box2D:物理引擎Box2D的相关源文件 Chipmunk:物理引擎chipmunk的相关源文件 cocos2dx:cocos2d-x引擎的核心部分,存放了引擎的大部分源...

长平狐
2012/08/29
1K
0
[cocos2d-x-win32] 安装部署流程整理

[cocos2d-x-win32] 安装部署流程整理 cocos2d-x相信大家都知道,是用C++重写cocos2d-iphone引擎的一个开源项目。 其中win32版本可以在xp+VS2008下进行开发,这对于手边没有mac,想要写一些 ...

cxycappuccino
2011/06/16
0
0
Cocos2d-x跨Android&iOS平台开发入门

本教程由泰然教程组出品 Hello, Cocos2D-X for iOS! 配置cocos2d-x的eclipse开发环境 Setup the Android NDK (Native Development Toolkit) Hello, Cocos2D-X for Android! 第一个提示要求你......

lying
2013/09/05
0
0
Cocos2d-x 脚本语言Lua的使用

前面几篇博客已经把Lua的相关基础知识介绍了,本篇博客就来介绍一下,如何在Cocos2d-x项目中使用Lua这门脚本语言进行开发。由于笔者使用的时Mac系统,所以演示给大家的时在XCode当中运行我们...

tropicofcancer9
04/19
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

程序的调试信息

调试二进制程序时,经常要借助GDB工具,跟踪程序的执行流程,获取程序执行时变量的值,以发现问题所在。GDB能得到这些信息,是因为编译程序时,编译器保存了相应的信息。Linux下的可执行程序...

qlee
17分钟前
0
0
应用级缓存

缓存命中率 从缓存中读取数据的次数与总读取次数的比例,命中率越高越好 java缓存类型 堆缓存 guavaCache Ehcache3.x 没有序列化和反序列化 堆外缓存ehcache3.x 磁盘缓存 存储在磁盘上 分布式...

writeademo
59分钟前
0
0
python爬虫日志(3)find(),find_all()函数

1.一般来说,为了找到BeautifulSoup对象内任何第一个标签入口,使用find()方法。 以上代码是一个生态金字塔的简单展示,为了找到第一生产者,第一消费者或第二消费者,可以使用Beautiful Sou...

茫羽行
今天
0
0
java:thread:顺序执行多条线程

实现方案: 1.调用线程的join方法:阻塞主线程 2.线程池 package com.java.thread.test;public class MyThread01 implements Runnable {@Overridepublic void run() {Syste...

人觉非常君
今天
0
0
ElasticSearch 重写IK分词器源码设置mysql热词更新词库

常用热词词库的配置方式 1.采用IK 内置词库 优点:部署方便,不用额外指定其他词库位置 缺点:分词单一化,不能指定想分词的词条 2.IK 外置静态词库 优点:部署相对方便,可以通过编辑指定文...

键走偏锋
今天
16
0
Git 2.18版本发布:支持Git协议v2,提升性能

Git 2.18版本发布:支持Git协议v2,提升性能Git 2.18版本发布:支持Git协议v2,提升性能 新版本协议的主要驱动力是使 Git 服务端能够对各种 ref(分支与 tag)进行过滤操作。 这就意味着,G...

linux-tao
今天
0
0
python浏览器自动化测试库【2018/7/22-更新】

64位py2.7版本 更新 document_GetResources 枚举页面资源 document_GetresourceText 获取指定url的内容 包括页面图片 下载地址下载地址 密码:upr47x...

开飞色
今天
41
0
关于DCL双重锁失效及解决方案

关于DCL双重锁失效及解决方案 Double Check Lock (DCL)实现单例 DCL 方式实现单例的优点是既能够在需要时才初始化单例,又能够保证线程安全,且单例对象初始化后调用getInstance方法不进行...

DannyCoder
今天
0
0
PowerDesigner 16.5 安装配置

PowerDesigner16.5破解版是一款业内领先且开发人员常用的数据库建模工具,PowerDesigner可以从物理和概念两个层面设计数据库,方便用户制作处清晰直观的数据流程图和结构模型,欢迎有需要的朋...

Gibbons
今天
0
0
mac Homebrew 指令积累

1通用命令 brew install [包名] //安装包 brew list //列举安装的包 brew info [包名] // 显示安装包的详细信息 mysql 相关 #启动mysql 服务 brew service start mysql my...

Kenny100120
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部