Cocos2d-x建工程时避免copy文件夹和库

 

上一篇教程中,我们演示了如何使用VS2010来新建一个工程,并且教大家如何一步步解决头文件包含错误、lib库引用错误dll链接错误。但是,每次建一个工程都这么费时,岂不是很不爽,而且每个工程都要copy一份cocos2d-x、cocoaDension和box2d文件夹,还有配置lib,dll,太耗时,这样太浪费空间了!

 

    那么,有没有什么办法不这么麻烦呢?当然是有的。这篇教程的目的就是教大家如何更轻松地创建一个新的工程。主要有2个方法:

    方法一:(官方做法)

  1. 打开F:\cocos2d-1.0.1-x-0.9.1目录下的cocos2d-win32.vc2010.sln文件,然后右键点击解决方案,选择"添加"—"新建项目",如下图:

    Cocos2d-x建工程时避免copy文件夹和库

    接下来,从已安装的模板中选择cocos2d-x,然后选择cocos2d-x win32 Application,最后在下方给新建工程取一个名字为"HelloWorldBox2D",如下所示:(注意默认位置F:\cocos2d-1.0.1-x-0.9.1不能更改!!!)

Cocos2d-x建工程时避免copy文件夹和库

 

    建好项目之后,直接右建HelloWorldBox2d,然后设置为启动项目,然后再按"Ctrl+F5"好完成 了!简单吧,下面是运行效果截图:

Cocos2d-x建工程时避免copy文件夹和库

 

方法二:

   在前一篇教程的基础之上,不打开F:\cocos2d-1.0.1-x-0.9.1\cocos2d-win32.vc2010.sln文件,而是新建一个工程。然后,我们不是copy文件夹、lib和dll了。我们只需要把release版本的dll全部复制到c:\Windows\System32目录下去。(由于cocos2d-x生成的debug版链接库和release版链接库名字一样,所以只需要把release复制过去就行了,我实验了一下,debug模式下链接release动态链接库也是可行的。)

    接下来,我们要做一点其它的事了。

  1. 首先在D盘建立一个文件夹cocos2d-xSources,然后把Box2D,cocos2dx,CocosDenshion拷贝到这个目录下面,并且再新建一个文件夹libs,具体目录结构如下图:

    Cocos2d-x建工程时避免copy文件夹和库

     

    然后把F:\cocos2d-1.0.1-x-0.9.1\Release.win32目录下的

    libcocos2d.lib

    libEGL.lib

    libgles_cm.lib

    libCocosDenshion.lib

    iconv.lib

    libxml2.lib

     zlib1. Lib

全部拷贝到刚刚新建的libs目录下面去。

  1. 接下来,我们要设置VC的头文件包含目录和库引用目录:选择"属性管理器",然后选择Debug | Win32,如下图所示:

    Cocos2d-x建工程时避免copy文件夹和库

    然后双击打开Microsoft.Cpp.Win32.user这个文件,然后选择VC++目录,如下图:

    Cocos2d-x建工程时避免copy文件夹和库

    接下来我们要更改右边的"包含目录"和"库目录",在右边的空白地方点击一下,

    Cocos2d-x建工程时避免copy文件夹和库

    然后选择"编辑",如下图所示的目录都添加进去就OK了:

    Cocos2d-x建工程时避免copy文件夹和库

   然后"Ctrl+F5",哈哈,成功!你把项目设置改成debug和release都能编译并运行成功。不过debug生成的exe文件可能被360认为是病毒。。。无语啊!然后,你再试着重新新建一个项目试试,哈哈,一样可以编译通过并运行成功,而且少了很多不必要的设置。这种方法有个缺点,就是查看不到cpp实现。不过我觉得这个方法更轻巧。方法一虽然好,设置也简单,但是当你写了很多工程以后,会发现加载非常之慢,特别是配置不好的同学。对于方法二,如果cocos2d-x升级了,也就是重新生成lib和dll,然后覆盖之前的就行了。接着再拷贝Box2D,cocos2dx,CocosDenshion三个文件夹,也是覆盖就OK!

 

要留言?请点击传送门

 

    著作权声明:本文由 子龙山人(http://www.cnblogs.com/andyque) 原创,欢迎转载分享。请尊重作者劳动,转载时保留该声明和作者博客链接,谢谢!

你可能感兴趣的:(cocos2d-x)