转载请注明出处:http://blog.csdn.net/cywn_d/article/details/25775019
假设是原来使用cocos2dx 2.x要升级到3.0的项目,可能须要替换cocos2dx 3.0的这些库,3.0相对于曾经的版本号改变还是挺大的,所以最坑的还是替换后所产生的各种编译问题。千里之行始于足下,所以我们要先试试新建一个demo试试3.0可能有哪些编译问题须要解决。
新建一个新的项目,将cocos2dx 3.0须要用到的一些文件导入,主要有下面几个目录:build、cocos、extensions、external.
build目录里面仅仅须要保留一个cocos2d_libs.xcodeproj文件。将这个文件加入到新建项目的Framework目录下
完毕了以上这两步,接下来就是加入一些库了,可能有几个不是必须的,可是假设使用cocos2dx 3.0提供的Demo下的cpp-empty-test的代码,就要用到下面所有的库。
接下来是加入Target,由于我创建的是空项目,所以仅仅须要下面三个:
再然后是加入User Header Search Paths,须要加入两个,一个是Targets下的,一个是Project下的
然后是加入Processing的编译參数,也是有两个
Targets下的Debug:
Targets下的Release:
Project下的Debug:
Project下的Release:
加入了这些,编译就能够通过了。我直接复制了Demo提供的这些代码測试,成功执行。
由于我创建的是ARC项目,可是Demo是非ARC的,所以有几个小地方须要改动一下,首先是去掉全部的delloc,然后是AppController.mm下的eaglView要加上(__bridgevoid*)。
期间可能会出现下面几个编译问题:
1.xxx.h not found之类的问题
这应该是你加入的User Header Search Paths路径不正确,你要依据cocos2d那些目录在你的项目下的路径来设置。
2."_OBJC_CLASS_$_xxx", referenced from: objc-class-ref in xxx.o
这应该是Link Binary WIth Libraries以下加入的库不全,你看提示信息说哪个文件找不到,看看这个文件是那个xx.framework下的,就加入响应的framework。