之前的项目用的版本是2.2.6,现在闲来无聊想移到3.6上面去。
win32:
1.导入libcocos2d工程后,在自己的工程中引用其会提示 项目文件“”已被重命名或不在解决方案中
这是因为libcocos2d引用了spine和box2d,而我们项目中并没有使用物理引擎,所以不需要,应移除。同时,在cocos2dx.props里面有个属性:AdditionalDependencies,里面包含了libbox2d及libspine,也应该同时删掉
2.用cocos自带的python生成工程时,工程会引用拷贝过来的cocos2d库。如果这个位置跟项目的文件架构要求的位置不一样,可以在工程文件中修改。
3.如果提示找不到cocos相关文件,可以在附加包含目录中加入cocos的根路径
4.因为自己电脑系统比较老,故安装了win10,并在新系统中安装了visual studio 2015,在运行cocos的test时出现一个问题:error “fatal error C1189: #error: Macro definition of snprintf conflicts with Standard Library function declaration”。
经搜索,有个答案可以解决问题:http://stackoverflow.com/questions/27754492/vs-2015-compiling-cocos2d-x-3-3-error-fatal-error-c1189-error-macro-definiti
mac os:
1.第一次我是在自己的工程中引用新的cocos库。因为工程的内容不多,只有两个公司的库,而cocos的配置要看官方给出的例子,所以这个方式是不对的。
后来我是用cocos给的方式创建工程,虽然也有一些问题,但是我认为当当前项目内容不多的情况下应该考虑这种方式。
2.CCRef中提示nullptr没找到,CCConsole中提示thread没找到。
这个就是因为之前的工程使用的c++标准库不知道c++11,而3.6版本的cocos需要支持c++11,解决方法就是使用支持c++11的标准库,比如llvm。
3.提示vtable错误
公司的库的项目之前是用gnu(不支持c++11的版本)编译的,而引用3.6版本后统一使用了c++11,这样会导致新建的类如果继承了库里面的类,必须全部重写虚函数,而且还不能引用父类的虚函数,这个在逻辑上应该是不同的,没想清楚为什么。解决方法是把之前的库用llvm(支持c++11)重新编译一遍就可以了
本文记录了将cocos2d-x项目从2.2.6升级到3.6的过程中遇到的问题及解决方法,包括win32平台下删除不必要的库引用,调整工程配置,解决visual studio 2015的编译错误,以及mac os平台的C++11兼容性问题和vtable错误的处理。
6413

被折叠的 条评论
为什么被折叠?



