欢迎加入 Cocos2d-x 交流群:193411763
转载时请注明原文地址:http://blog.csdn.net/u012945598/article/details/17954549
今天在使用Cocos2d-x 2.2.1版本中的"curl.h"头文件时遇到了一个问题
之后笔者对比了一下Cocos2d-x 2.1.5版本,发现在2.1.5的版本中cocos2dx文件(curl文件夹位于cocos2dx文件夹目录下)是以groups(黄色文件夹)的形式存在于项目中的,而在2.2.x版本中采用了新的引入方式,也就是我们所见到的cocos2d-x.xcodeproj
(不理解groups形式请参考http://blog.csdn.net/u012945598/article/details/17955215)
2.1.5版本:
2.2.x版本:
这也就解释了,为什么在2.2.0之后的版本中,如果将你的项目拷贝到了别的电脑上,项目将无法运行的原因。
因为2.2.0之后的版本中,cocos2dx文件夹不再存在于项目的目录下了,而是位于你的系统中的某个位置(下载完之后扔哪了就是哪),当编译器对cocos2dx文件做路径搜索时,会按照创建项目的机器中的cocos2dx文件的路径去搜索,而在另外一台电脑中,路径是不一样的,所以自然会找不到。搜索路径如下图:
我们常用的解决办法就是新建一个项目,将之前项目的Classes文件夹与Resources文件夹拷贝出来,再重新添加到项目中。
从形式上来说,在2.1.5版本中的cocos2dx的文件夹的作用与2.2.x版本中的cocos2dx.xcodeproj的作用是相同的,因为他们都是对cocos2d-x文件夹目录下的cocos2dx文件中的源码的引用。但是在使用过程中,又略有一些区别。
由于在2.1.5的版本中cocos2dx文件是以groups的形式被添加到项目中的,所以在使用的时候,我们可以没有任何顾忌的引用文件中的任何头文件 #include "xxx.h",原因我们在之前的参考文章中已经提过,是因为以groups形式添加到项目中的文件都是会被编译的。
编译的资源文件位置位于Compile Sources如下图:
然而还有一部分文件仍然是以引用的方式存在于项目中,类似于 curl.h,这些文件在使用的过程中并不能直接通过#include "xxx.h"方式获取到它们的头文件,而是要通过其上级目录索引到,例如我们要使用curl文件夹中curl.h的头文件:
#include "curl/curl.h"
又或者我们需要使用到platform中的CCThread类,需要引入头文件
#include "platform/CCThread"
若不加上级目录,就会出现文章开篇中的错误,这就是Cocos2d-x-2.1.5版本与2.2.x版本中cocos2dx中源码使用的区别