我正在使用cocos2d-x 2.2进行游戏,我对编译和编译没有任何问题。在xcode&上构建c ++ 11的东西IOS。编译和编译也没问题。建立在android项目上。
但问题是当我尝试使用lambda函数调用c ++ 11 feature std :: function时,我遇到了运行时错误。
11-17 00:13:38.201:A / libc(5419):致命信号11(SIGSEGV)位于0x000001d0(代码= 1),线程5446(线程-27308)
代码没什么特别的。具有std :: function类型的成员变量并保存lambda函数,称为特定时序。
会出现什么问题?我的测试设备是Gallxy 4s。
完全相同的代码在ios 7和iPhone 4上运行得非常好。
任何建议都会很棒。
EDIT1。已添加简化代码。
class SimpleObject {
typedef std::function<void (unsigned bx, unsigned by)> ClickEventHandler_t;
ClickEventHandler_t m_click_handler;
void SetClickEventHandler(ClickEventHandler_t handler) { m_click_handler = handler; }
};
// setup
obj->SetClickEventHandler([this](unsigned bx, unsigned by) { TrapClicked(bx, by); });
void TrapClicked(unsigned bx, by)
{
CCLog("Trap clicked!");
}
// call
if (m_click_handler)
m_click_handler(boardx, boardy);
答案 0 :(得分:0)
我在尝试加载tmx地图时遇到了同样的错误,其中对象项(如图像和图块集)不在同一目录中。他们被引用到我的电脑路径。它成功编译顺便没有错误。所以请确保你在同一个&#34;资源&#34;中调用一个项目。目录不在它之外。