Cocos2dx报错undefined reference to 'cocos2d::Sprite::setDisplayFrameWithAnimationName(std::__1::basic

Cocos2dx报错undefined reference to 'cocos2d::Sprite::setDisplayFrameWithAnimationName(std::__1::basic,第1张

概述错误信息如下: ./obj/local/armeabi/objs-debug/cocos2dcpp_shared/__/__/Classes/ActorSprite.o:jni/../../Classes/ActorSprite.cpp:function vtable for ActorSprite: error: undefined reference to 'cocos2d::Sprite

错误信息如下:

./obj/local/armeabI/ObJs-deBUG/cocos2dcpp_shared/__/__/Classes/ActorSprite.o:jni/../../Classes/ActorSprite.cpp:function vtable for ActorSprite: error: undefined reference to 'cocos2d::Sprite::setdisplayFrameWithAnimationname(std::__1::basic_string<char,std::__1::char_traits<char>,std::__1::allocator<char> > const&,long)'clang++.exe: error: linker command Failed with exit code 1 (use -v to see invocation)make.exe: *** [obj/local/armeabi/libcocos2dcpp.so] Error 1

从出错信息来看是说在ActorSprite类的虚函数表中找不到关于setdisplayFrameWithAnimationname函数的定义,这就怪了我的ActorSprite明明就是从Sprite继承来的,查了一下setdisplayFrameWithAnimationname这个函数只有2个参数的但这里居然说有4个参数,百思不得其解,后来总算在一个日本的开发者网站查到原因了: http://shakezoomer.com/?p=769

解决方法:就是在项目的proj.androID目录下执行命令行build_native.py -n clean,执行一遍报错就多执行几遍(反正我是执行了两遍),这个命令应该是把先前编译的库文件都清掉,然后重新编译你的项目文件就可以了。



总结:由于我先前用的NDK是r10d版本的,听说3.2版的需要r9d才换回去,这就导致一个问题就是先前已经在r10d下编译的一些库文件没清掉,干掉它们再换回r9d就OK了!

总结

以上是内存溢出为你收集整理的Cocos2dx报错undefined reference to 'cocos2d::Sprite::setDisplayFrameWithAnimationName(std::__1::basic全部内容,希望文章能够帮你解决Cocos2dx报错undefined reference to 'cocos2d::Sprite::setDisplayFrameWithAnimationName(std::__1::basic所遇到的程序开发问题。

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

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

原文地址: https://www.outofmemory.cn/web/1082662.html

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

发表评论

登录后才能评论

评论列表(0条)

保存