Android側のエラーなのですが、CCProfiling.cppで「std::chrono::_V2::system_clock::now()」が定義されていないとエラーが出ました。 原因はわかりませんが、エラーが出なくなりましたので、もし同じような症状が出る場合は参考にしてみてください。
エラー箇所
cocos2dxのVer3.1を利用。 共に同じ原因で、CCProfiling.cppで3つエラーが出ます。 [c]
void ProfilingTimer::reset() { numberOfCalls = 0; averageTime1 = 0; averageTime2 = 0; totalTime = 0; minTime = 100000000; maxTime = 0; _startTime = chrono::high_resolution_clock::now(); // ここ }
void ProfilingBeginTimingBlock(const char timerName) { Profiler p = Profiler::getInstance(); ProfilingTimer* timer = p->_activeTimers.at(timerName); if( ! timer ) { timer = p->createAndAddTimerWithName(timerName); }
timer->numberOfCalls++;
// should be the last instruction in order to be more reliable
timer->_startTime = chrono::high_resolution_clock::now(); // ここ
}
void ProfilingEndTimingBlock(const char *timerName) { // should be the 1st instruction in order to be more reliable auto now = chrono::high_resolution_clock::now();// ここ
Profiler* p = Profiler::getInstance();
ProfilingTimer* timer = p->_activeTimers.at(timerName);
CCASSERT(timer, "CCProfilingTimer not found");
long duration = static_cast<long>(chrono::duration_cast<chrono::microseconds>(now - timer->_startTime).count());
timer->totalTime += duration;
timer->_averageTime1 = (timer->_averageTime1 + duration) / 2.0f;
timer->_averageTime2 = timer->totalTime / timer->numberOfCalls;
timer->maxTime = MAX( timer->maxTime, duration);
timer->minTime = MIN( timer->minTime, duration);
}
[/c]
エラー内容は [c] undefined reference to "std::chrono::_V2::system_clock::now()" [/c]
エラー解消
一度この3箇所をコメントアウトをして、Eclipseでビルドをします。 おそらく、エラーが出ます。(これは、nowが定義されていないというエラーだと思います)
次に、3箇所のコメントアウトを消して、再度ビルドをしてみます。 そうするとエラーが出なくなります。
もし、同じエラーが出た場合、一度上記の方法を試してみてください。