std :: round不是android上std的成员

时间:2017-02-25 18:57:54

标签: c++ qt c++11 android-ndk

我在为Android和Android构建的Qt应用程序中使用来自C ++ 11的std::round iOS版。但是在android上,我得到了错误 std::round is not a member of std尽管包含cmath标题。

如何让std::round在Android上运行?是否有替代std::round

以下是我的android环境:

ANDROID_NDK_PLATFORM = android-23
NDK version          = r13b
ANDROID_NDK_TOOLCHAIN_VERSION = 4.9

2 个答案:

答案 0 :(得分:2)

看起来Android-NDK中缺少cmath标头中的一些功能,有关详细信息,请参阅here

然而,实现自己的round功能非常容易:

template<typename T>
T round(T v) {
  return int(v + 0.5);
}

或查看其他建议/实施here

答案 1 :(得分:1)

  

如何在android上进行std :: round工作?

(编辑:更新说明)

切换到NDK r18并移除ANDROID_NDK_TOOLCHAIN_VERSION = 4.9行,因为gcc现已从NDK中完全删除,默认为clang