千家信息网

Qt5出现错误'acosh'不是'std'的成员怎么办

发表于:2024-12-05 作者:千家信息网编辑
千家信息网最后更新 2024年12月05日,这篇文章主要介绍"Qt5出现错误'acosh'不是'std'的成员怎么办",在日常操作中,相信很多人在Qt5出现错误'acosh'不是'std'的成员怎么办问题上存在疑惑,小编查阅了各式资料,整理出简
千家信息网最后更新 2024年12月05日Qt5出现错误'acosh'不是'std'的成员怎么办

这篇文章主要介绍"Qt5出现错误'acosh'不是'std'的成员怎么办",在日常操作中,相信很多人在Qt5出现错误'acosh'不是'std'的成员怎么办问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"Qt5出现错误'acosh'不是'std'的成员怎么办"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

错误: jsruntime/qv4mathobject.cpp:152:26:错误:'acosh'不是'std'的成员
jsruntime/qv4mathobject.cpp:152:26:错误:'asinh'不是'std'的成员
jsruntime/qv4mathobject.cpp:152:26:错误:'atanh'不是'std'的成员
……
主要问题是GCC版本太低,对标准支持不全的原因,解决办法是:
打开qt-everywhere-src-5.13.0/qtdeclarative/src/qml/jsruntime/qv4mathobject.cpp
修改149行这里:
#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))));

整个文件,依次类推,所有的宏都取
#ifdef Q_OS_ANDROID // incomplete std :-(

#else
之间的

然后,删除368行的:
#if !defined(__ANDROID__) using std::log1p; #endif

到此,关于"Qt5出现错误'acosh'不是'std'的成员怎么办"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!

0