架构arm64的未定义符号[SDKBOX和cocos2dx v2.2.6]

时间:2017-01-13 19:54:37

标签: ios cocos2d-x cocos2d-x-3.0 cocos2d-x-2.x

我正在使用cocos2dx v2.2.6和SDKBOX 1.0.16(今天发布)更新一款非常老的游戏。我已经完成了所有步骤,但是当我更新iOS目标时遇到了僵局。

我收到此错误:

Undefined symbols for architecture arm64: "sdkbox::PluginChartboost::show(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)", referenced from: GameLayer::pauseGame(cocos2d::CCObject*) in GameLayerScene.o "sdkbox::PluginAdMob::isAvailable(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)", referenced from: GameLayer::pauseGame(cocos2d::CCObject*) in GameLayerScene.o "sdkbox::PluginAdMob::show(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)", referenced from: GameLayer::pauseGame(cocos2d::CCObject*) in GameLayerScene.o "sdkbox::PluginChartboost::isAvailable(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)", referenced from: GameLayer::pauseGame(cocos2d::CCObject*) in GameLayerScene.o "sdkbox::PluginAdMob::cache(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)", referenced from: GameLayer::pauseGame(cocos2d::CCObject*) in GameLayerScene.o AppDelegate::applicationDidFinishLaunching() in AppDelegate.o ld: symbol(s) not found for architecture arm64 clang:错误:链接器命令失败,退出代码为1(使用-v查看调用) 正如您所看到的,它无法识别与Ads相关的任何方法,但每个插件的init函数都能正常工作,并且不会导致任何错误。

有人注意到这样的问题或者知道是什么原因造成的吗?我已经用框架双重检查了链接二进制文件中的框架。

谢谢。

1 个答案:

答案 0 :(得分:0)

您需要修复构建目标,以便它实际链接到C ++库。要检查的一件事是确保项目中实际上有.cpp或.mm文件,以便Xcode知道自动链接C ++运行时(具有正确扩展名的空文件将执行此操作)。