关闭

Cocos2dx 3.x 新建项目编译很慢的解决方案

标签: cocos2d-x3.xVS2013编译很慢解决方案
11844人阅读 评论(10) 收藏 举报
分类:

一、前言


最近在用Cocos2d-x(后面我简称"Co-x")开发项目,发现一个问题:

Co-x 3.x版本在windows下,新建一个项目,使用VS2013编译时,会很慢很慢(尽管Co-x源项目已经编译过)。

经过摸索,究其原因是:3.x版本中,新建项目时是直接将Co-x相关的源项目复制到所建项目的指定目录,即新建项目引用的是复制后的Co-x源项目,这样VS编译新建项目时,就会把复制的Co-x源项目重新编译一遍,时间必然很长(就算ssd还是要20来分钟,要知道以前2.x编译新建项目时也就分分钟……)



二、解决方案(windows平台)


其实2.x版本并不是3.x这么做的,2.x中新建项目直接引用最初编译好的Co-x源项目,因此编译新建项目时,就不会重新编译原来的Co-x源项目。

那么解决方案就是按照2.x版本,引用最初编译好的Co-x源项目

(这样做的前提是,你已经把Co-x引擎的“build”下的项目完整编译过一次)


具体步骤如下

1、用VS2013打开新建的项目,这里我新建的项目名为“HelloCpp”


2、右键“移除”新建项目时复制的Co-x源项目(注意:此时不要直接编译,不然会等很长时间——如果你愿意等,那我没法咯 o(╯□╰)o)


3、添加最初编译好的Co-x源项目,右键“解决方案” -》“添加”-》“现有项目”。

需要添加的项目及其路径如下表所示(即上一步移除的项目,这里我以Cocos2d-x-3.10为例):

项目名

项目路径

libcocos2dx

E:\Cocos2d-x\cocos2d-x-3.10\cocos\2d

libbox2d

E:\Cocos2d-x\cocos2d-x-3.10\external\Box2D\proj.win32

libbullet

E:\Cocos2d-x\cocos2d-x-3.10\external\bullet\proj.win32

librecast

E:\Cocos2d-x\cocos2d-x-3.10\external\recast\proj.win32

libSpine

E:\Cocos2d-x\cocos2d-x-3.10\cocos\editor-support\spine\proj.win32







4、给新建的项目添加对应Co-x项目的依赖引用,右键“项目名”-》“属性”-》“通用属性”-》“引用”-》“添加新引用”

通常需要引用的有:libcocos2dx、libbox2d、libSpine(这一步必须有,不然会报错,对于一般小项目而言,libcocos2dx是必须的)










5、至此,一个新建项目就算改好了,现在可以直接用VS2013编译。这样一开始大概只需要1~2分钟的时间就能编译完成,比起之前20多分钟还是快了很多(如果你的电脑不是SSD的话,可能会慢一点儿)。


可以发现,重新添加的Co-x源项目在编译过程中直接被跳过,因为这是已编译过的项目,编译速度也就快很多了。


而且项目的大小也只有700M,比起之前的好几个G,还是少了很多。




三、继续精简项目(添加于2016/5/27)


仔细观察可以发现,新建的项目中包含一个cocos2d目录,这个目录包含cocos引擎的所有源码,也是创建项目时cocos另外为项目复制的引擎源码,默认情况下项目是依赖于这个目录下的引擎源码的。


当然,这个也是可以精简的,我们可以删除cocos2d这个目录,然后让新建项目依赖于已经编译好的引擎源码以及头文件。具体如下:

1、打开项目目录下的“proj.win32”目录,然后用UltraEdit(或其它文本编辑器)打开“项目名.vcxproj”(我这里是“HelloCpp.vcxproj”)


2、然后将替换Import Project的值

<ImportProject="..\cocos2d\cocos\2d\cocos2dx.props" />

<ImportProject="..\cocos2d\cocos\2d\cocos2d_headers.props" />

替换为(即引擎源码所在的目录,这里是相对目录)

<ImportProject="..\..\..\cocos\2d\cocos2dx.props" />

<ImportProject="..\..\..\cocos\2d\cocos2d_headers.props" />

3、之后,我们就可以删除之前项目中的cocos2d目录(引擎源码副本),然后再次编译整个项目,你会发现项目变得很小了




四、吐槽一下


不理解Cocos2dx团队在3.x中为什么不沿用2.x的做法,而是直接复制Co-x源项目,要知道一个Co-x源项目编译后有好几个G呢,直接复制多占空间啊!这样做真是太鸡肋了,吐槽吐槽……

12
0
查看评论

cocos2dx 3.x 命令行创建和编译工程

1.设置环境变量 JAVA_HOME=C:\Program Files\Java\jdk1.7.0_17 CLASSPATH=.;%JAVA_HOME%\lib; Path增加%JAVA_HOME%\bin; ANT_ROOT=E:\code\Cocos2dx\apache-ant-...
  • lzq0101
  • lzq0101
  • 2015-05-15 01:38
  • 2639

cocos2d-x 减少编译时间/免除重复编译

cocos2d-x游戏引擎在每新建一个工程时都会附带好多库文件要编译,导致开发效率降低,一个helloworld项目初次编译可能都要10来分钟。 所以减少编译时间是非常有必要的。 (本文只讲VS2013和Android NDK的方法,其他平台大同小异)
  • u014335219
  • u014335219
  • 2016-01-10 14:15
  • 7416

搭建Windows下的Cocos2d-3.X的开发环境

搭建Windows下的Cocos2d-3.X的开发环境 一、搭建环境之前,准备 Cocos2d-3.x压缩包,我用的是Cocos2d- 3.11,Python2.7.11,开发工具 VS2015 1.vs2015下载路径+番茄小助手 https://www.visualstudio.c...
  • hiwoshixiaoyu
  • hiwoshixiaoyu
  • 2016-05-19 20:41
  • 16662

cocos2dx 3.4 lua 编译android

假定我们现在有个纯洁的处女项目,cocos2dx3.4 lua项目,在E:\cocos\cocos2d-x-3.4\cocosCode\MyGame下。 我们要把它添油加醋地发布到自己的Android手机上,拿来给完全不懂android开发的妹子装逼。我们需要怎么做呢? 首先,得给新项目加点东西,不...
  • Zengchen2
  • Zengchen2
  • 2017-05-06 11:26
  • 835

Mac上配置Android开发环境并把Cocos2d-x项目编译到Android

欢迎各位童鞋转载,转载请注明出处:http://blog.csdn.net/song_hui_xiang 作者新浪微博:http://weibo.com/u/3168848533 作者腾讯微博:http://t.qq.com/song_huixiang 1、首先下载所需Android工具,包...
  • song_hui_xiang
  • song_hui_xiang
  • 2013-11-13 18:29
  • 13559

cocos2dx 编译时间长问题

解决方法是让引用的类库只编译一次(当然最好在不改变源码的情况下不编译取已经编译好的) windows下 第一次编译好后 在解决方案 属性页面修改 下一次在生成或者清理 就会跳过类库项目 mac下我没做尝试 其实最好的方法 我感觉 应该是 修改 cocos.py new goBang -...
  • Ydc__
  • Ydc__
  • 2015-08-15 12:13
  • 2750

【Cocos2dx-3.15】学习伊始的必备处理技能

答辩完啦,要毕业啦,在这百般无聊的等待授位的时候学习一下Cocos,之前学习U3D玩得挺不错的,见Cocos也占了相当一部分的市场份额,于是学习一番,但是在学习的过程中还是遇到了对于初学者来说比较棘手的问题,这里就稍微记录一下,以后换电脑了肯定还是需要到的,哈哈。
  • o0DarkNessYY0o
  • o0DarkNessYY0o
  • 2017-06-05 21:30
  • 1366

初识cocos2dx中的HelloWorld项目(一)

看懂cocos2dx项目文件之前的一些基础知识准备
  • hj469105076
  • hj469105076
  • 2016-07-12 12:59
  • 1214

版本cocos2dx-3.10编译不通过,解决方法:

版本cocos2dx-3.10编译不通过,解决方法: cocos compile -p android --android-studio --target android-23 --ap android-23 --ndk-mode debug --ndk-toolchain arm-linux-a...
  • wulong710
  • wulong710
  • 2017-06-30 07:39
  • 250

Cococs2d-x之解决cocos2d项目编译速度慢的问题

由于在创建cocos2d项目之后,系统会自动把cocos2d引擎带的那一套链接到新创建的项目上,我们只想要个helloworld你就要把一整套都弄进来,编译半天,欺负人啊有木有,这里给出一种解决方案: 1>先在cocos里把自带的那一套编译一遍,第一次漫长的编译是死活也逃不过了,等半天之后D...
  • maoliran
  • maoliran
  • 2016-06-19 11:42
  • 301
    【暂停更新博客o(╯□╰)o】
    首先对支持我博客的朋友说一声:抱歉。由于BlueCoder目前面临读研,还有很多计算机基础知识需要强化,因此目前已经没什么时间续写博客了~最后,希望还在游戏领域奋斗的你,继续加油,相信自己可以做的更好!

    --2015/3/15

    个人资料
    • 访问:250548次
    • 积分:3832
    • 等级:
    • 排名:第9909名
    • 原创:39篇
    • 转载:0篇
    • 译文:0篇
    • 评论:629条
    BlueCoder的微博
    博客专栏