Cocos2dx 3.x 解决首次项目复制库文件编译慢的问题

Home / C++ MrLee 2019-9-24 2846

自从Cocos2dx从2.X升级到3.X之后,新项目首次都会从COCOS目录复制核心文件到该工程目录下,虽然方便了工程的迁移不依赖COCOS(或者说新系统也能编译),但是体积何其大,编译速度何其慢。为了有效解决这个问题,特意从网上转载一文。

解决方案(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目录(引擎源码副本),然后再次编译整个项目,你会发现项目变得很小了

本文链接:https://www.it72.com/12569.htm

推荐阅读
最新回复 (0)
返回