利用VS对Cocos进行编译,是一件比较痛苦的事情,但是如何提高编译速度呢?说下几种编译情况:
1 利用Cocos Studio创建C++工程
Cocos Studio是一个非常方便的创建Cocos项目工程的工具。
项目名称:你所创建的项目名称(最好不要使用中文)
项目路径:项目存放的位置(路径中不要存在中文)
引擎版本:也就是Cocos2d-x的版本
引擎语言:我们根据自己的需要选择需要的语言
编辑器:选上吧,方便我们对于场景的编辑
SDK接入:目前不需要用
接下来着重说下引擎类型,这里是提高编译速度的关键所在。
(1)预编译库
我们先创建一个试试,我创建了一个Fromlib的Cocos项目;
先编译下,编译用时:30s
然后查看项目目录大小:245MB
修改一下文件,再进行编译,用时:25s
不修改文件,再编译下,用时:26s
再修改,再编译,用时:33s
1>------ 已启动生成: 项目: Fromlib,配置: DeBUG Win32 ------1> HelloWorldScene.cpp1> 复制了 60 个文件1> Fromlib.vcxproj -> D:\Users\CZW\documents\Cocos\CocosProjects\Fromlib\proj.win32\DeBUG.win32\Fromlib.exe1> 复制了 0 个文件========== 生成: 成功 1 个,失败 0 个,最新 0 个,跳过 0 个 ==========
大部分时间都花在复制那60个文件上面了。通过多次尝试,发现编译时间基本都维持在25~35s之间。
上面这些都是为什么呢?我们来看看这个项目的main.c
#include "main.h"#include "AppDelegate.h"#include "cocos2d.h"USING_NS_CC;#if _MSC_VER > 1800#pragma comment(lib,"libcocos2d_2015.lib")#pragma comment(lib,"libBox2d_2015.lib")#pragma comment(lib,"libSpine_2015.lib")#pragma comment(lib,"librecast_2015.lib")#pragma comment(lib,"libbullet_2015.lib")#else#pragma comment(lib,"libcocos2d_2013.lib")#pragma comment(lib,"libBox2d_2013.lib")#pragma comment(lib,"libSpine_2013.lib")#pragma comment(lib,"librecast_2013.lib")#pragma comment(lib,"libbullet_2013.lib")#endifint APIENTRY _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdline,int nCmdshow){ UNREFERENCED_ParaMETER(hPrevInstance); UNREFERENCED_ParaMETER(lpCmdline); // create the application instance AppDelegate app; return Application::getInstance()->run();}
可以发现,他是通过每次调用系统库,来实现对源代码不必要的编译,但是这样每次编译度需要将这些库连接到exe文件上。他花费的时间基本都是固定的。
(2)源代码
下面选择源代码创建一个Hello的Cocos项目。
先编译下,额。。。。。,时间比较长,用时:8分钟
查看项目目录大小:好吧,4.59GB
修改一下文件,再编译下,用时:10s
不修改文件,编译下:2s
再修改文件,编译下,用时:8s
1>------ 已跳过生成: 项目: libBox2d,配置: DeBUG Win32 ------1>没有为此解决方案配置选中要生成的项目 2>------ 已跳过生成: 项目: libSpine,配置: DeBUG Win32 ------2>没有为此解决方案配置选中要生成的项目 3>------ 已跳过生成: 项目: libbullet,配置: DeBUG Win32 ------3>没有为此解决方案配置选中要生成的项目 4>------ 已跳过生成: 项目: librecast,配置: DeBUG Win32 ------4>没有为此解决方案配置选中要生成的项目 5>------ 已跳过生成: 项目: libcocos2d,配置: DeBUG Win32 ------5>没有为此解决方案配置选中要生成的项目 6>------ 已启动生成: 项目: Hello,配置: DeBUG Win32 ------6> HelloWorldScene.cpp6> Hello.vcxproj -> D:\Users\CZW\documents\Cocos\CocosProjects\Hello\proj.win32\DeBUG.win32\Hello.exe6> 复制了 0 个文件========== 生成: 成功 1 个,失败 0 个,最新 0 个,跳过 5 个 ==========
发现,其实利用源代码进行二次编译时,只是对被修改的文件进行编译,其他库文件则不用编译也不用复制。
OK!对上面一些参数做个对比:
引擎类型 | 首次编译用时 | 项目工程大小 | 二次修改编译用时 | 三次未修改编译用时 | 四次编译用时 |
---|---|---|---|---|---|
预编译库 | 30s | 245MB | 25s | 26s | 33s |
源代码 | 8min | 4.59GB | 10s | 2s | 8s |
通过上面对比,我们可以发现,虽然预编译库首次编译用时比较短,并且占用空间比较小。但是从后期开发时间的考虑,还是建议选择源代码比较好一点。
2 利用Cocos2d-x工具创建项目该方法与上面的(2)一样。有些人不想装Cocos Studio了就可以利用这种方法就行创建项目。
(1)安装Python27
建议选择Python2.7x版本,高版本有些兼容问题。
(2)利用cocos创建工程
启动dos窗口,输入命令:cd cocos2d-x-3.10\tools\cocos2d-console\bin
进入cocos2d-x-3.10\tools\cocos2d-console\bin中;先来Cocos命令怎么用
C:\cocos2d-x-3.10\tools\cocos2d-console\bin>cocos -hC:\cocos2d-x-3.10\tools\cocos2d-console\bin\/cocos.py 2.1 - cocos console: cocos2d-x 的命令行工具集。可用的命令: run 在设备或者模拟器上编译,部署和运行工程。 gen-libs 生成引擎的预编译库。生成的库文件会保存在引擎根目录的 'prebuilt' 文件夹。 luacompile 对 lua 文件进行加密和编译为字节码的处理。 gui shows the GUI deploy 编译并在设备或模拟器上部署工程。 package 管理 cocos 中的 package。 compile 编译并打包工程。 framework 管理工程使用的 frameworks。 gen-simulator 生成 Cocos 模拟器。 new 创建一个新的工程。 Jscompile 对 Js 文件进行加密和压缩处理。 gen-templates 生成用于 Cocos Framework 环境的模板。可用的参数: -h,--help 显示帮助信息。 -v,--version 显示命令行工具的版本号。 --ol ['en','zh','zh_tr'] 指定输出信息的语言。 示例: cocos new --help cocos run --help
我们需要创建工程,再看cocos new –help
C:\Cocos\Cocos2d-x\cocos2d-x-3.10\tools\cocos2d-console\bin>cocos new --helpusage: cocos new [-h] [-p PACKAGE_name] [-d DIRECTORY] [-t TEMPLATE_name] [--ios-bundleID IOS_BUNDLEID] [--mac-bundleID MAC_BUNDLEID] [-e ENGINE_PATH] [--portrait] [--no-native] (-l {cpp,lua,Js} | --List-templates | -k TEMPLATE_name) [PROJECT_name]创建一个新的工程。positional arguments: PROJECT_name 设置工程名称。optional arguments: -h,--help show this help message and exit -p PACKAGE_name,--package PACKAGE_name 设置工程的包名。 -d DIRECTORY,--directory DIRECTORY 设置工程存放路径。 -t TEMPLATE_name,--template TEMPLATE_name 设置使用的模板名称。 --ios-bundleID IOS_BUNDLEID 设置工程的 iOS Bundle ID。 --mac-bundleID MAC_BUNDLEID 设置工程的 Mac Bundle ID。 -e ENGINE_PATH,--engine-path ENGINE_PATH 设置引擎路径。 --portrait 设置工程为竖屏。 -l {cpp,Js},--language {cpp,Js} 设置工程使用的编程语言,可选值:[cpp | lua | Js] --List-templates List available templates. To be used with --template option. -k TEMPLATE_name,--template-name TEMPLATE_name name of the template to be used to create the game. To List available names,use --List-templates.lua/Js 工程可用参数: --no-native 设置新建的工程不包含 C++ 代码与各平台工程。
OK,有了帮助文档,我们就可以创建工程了,根据帮助,我们需要执行下面的命令。
C:\cocos2d-x-3.10\tools\cocos2d-console\bin>cocos new HelloWorld -p com.helloworld.game -l cpp -d C:\CocosProject\> 拷贝模板到 C:\CocosProject\HelloWorld> 拷贝 cocos2d-x ...> 替换文件名中的工程名称,'HelloCpp' 替换为 'HelloWorld'。> 替换文件中的工程名称,'HelloCpp' 替换为 'HelloWorld'。> 替换工程的包名,'org.cocos2dx.hellocpp' 替换为 'com.helloworld.game'。> 替换 Mac 工程的 Bundle ID,'org.cocos2dx.hellocpp' 替换为 'com.helloworld.game'。> 替换 iOS 工程的 Bundle ID,'org.cocos2dx.hellocpp' 替换为 'com.helloworld.game'。总结
以上是内存溢出为你收集整理的[针对初学者]Cocos 如何提高编译速度全部内容,希望文章能够帮你解决[针对初学者]Cocos 如何提高编译速度所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)