[针对初学者]Cocos 如何提高编译速度

[针对初学者]Cocos 如何提高编译速度,第1张

概述利用VS对Cocos进行编译,是一件比较痛苦的事情,但是如何提高编译速度呢?说下几种编译情况: 1 利用Cocos Studio创建C++工程 Cocos Studio是一个非常方便的创建Cocos项目工程的工具。 项目名称:你所创建的项目名称(最好不要使用中文) 项目路径:项目存放的位置(路径中不要存在中文) 引擎版本:也就是Cocos2d-x的版本 引擎语言:我们根据自己的需要选择需要的语言

利用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 如何提高编译速度所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1078700.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存