Qt5.12.x and Qt5.13.0 porting, qv4mathobject.cpp:152:26: error: 'acosh' is not a member of 'std'

error: jsruntime/qv4mathobject.cpp:152:26: error: 'acosh' is not a member of 'std'
jsruntime/qv4mathobject.cpp:152:26: error: 'asinh' is not a member of 'std'
jsruntime/qv4mathobject.cpp: 152:26: Error: 'atanh' is not a member of 'std'
... The
main problem is that the GCC version is too low, the reason for the incomplete support for the standard, the solution is:
open qt-everywhere-src-5.13.0/qtdeclarative/src /qml/jsruntime/qv4mathobject.cpp
modify line 149 here:
#ifdef Q_OS_ANDROID // incomplete std :-(
RETURN_RESULT(Encode(std::log(v +std::sqrt(v + 1) * std::sqrt(v - 1))));
#else
RETURN_RESULT(Encode(std::acosh(v)));
#endif

改成
RETURN_RESULT(Encode(std::log(v +std::sqrt(v + 1) * std::sqrt(v - 1))));

The whole file, and so on, all macros take
#ifdef Q_OS_ANDROID // incomplete std :-(
and
#else

Then, delete line 368:
#if !defined(__ANDROID__) using std::log1p; #endif

{{o.name}}
{{m.name}}

Guess you like

Origin http://10.200.1.11:23101/article/api/json?id=324126720&siteId=291194637